📌 Bash-скрипт для автоматического бэкапа MySQL с ротацией Накидал пример простого скрипта для автоматического бэкапа базы, чтобы всегда была свежая ко…
Накидал пример простого скрипта для автоматического бэкапа базы, чтобы всегда была свежая копия, но при этом не захламлять диск старыми дампами.
#!/bin/bash
# Параметры
# автор: https://t.me/bash_srv
DB_USER="root"
DB_PASS="password"
DB_NAME="my_database"
BACKUP_DIR="/backup/mysql"
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
# Создаём директорию для бэкапов, если нет
mkdir -p "$BACKUP_DIR"
# Делаем дамп базы
mysqldump -u"$DB_USER" -p"$DB_PASS" "$DB_NAME" > "$BACKUP_DIR/${DB_NAME}_${DATE}.sql"
# Оставляем только 7 последних бэкапов, остальные удаляем
ls -1t "$BACKUP_DIR"/*.sql | tail -n +8 | xargs -r rm --
echo "✅ Бэкап базы $DB_NAME создан: ${DB_NAME}_${DATE}.sql"
Как использовать:
1. Сохраните скрипт, например в /usr/local/bin/mysql_backup.sh.
2. Дайте права на выполнение:
chmod +x /usr/local/bin/mysql_backup.sh
3. Добавьте в cron, чтобы бэкап делался каждый день в 3 ночи:
0 3 * * * /usr/local/bin/mysql_backup.sh
📦 В результате вы всегда будете иметь 7 последних бэкапов, а старые будут удаляться автоматически.
👉 @bash_srv