Потеря базы данных — катастрофа для бизнеса. Автоматические ежедневные бэкапы — это страховка, которую настраивают один раз и забывают.
Простой скрипт резервного копирования
#!/bin/bash
# /usr/local/bin/mysql-backup.sh
DB_USER="root"
DB_PASS="ВашПароль"
BACKUP_DIR="/var/backups/mysql"
DATE=$(date +%Y-%m-%d_%H-%M)
KEEP_DAYS=7
mkdir -p "$BACKUP_DIR"
# Получить список всех баз данных
DATABASES=$(mysql -u"$DB_USER" -p"$DB_PASS" -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|sys)")
for DB in $DATABASES; do
echo "Backup: $DB"
mysqldump -u"$DB_USER" -p"$DB_PASS" --single-transaction --routines --triggers "$DB" | gzip > "$BACKUP_DIR/${DB}_${DATE}.sql.gz"
done
# Удалить старые бэкапы
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +"$KEEP_DAYS" -delete
echo "Backup complete: $(ls -lh $BACKUP_DIR | tail -5)"
chmod +x /usr/local/bin/mysql-backup.sh
# Добавить в cron (каждый день в 2:00)
echo "0 2 * * * root /usr/local/bin/mysql-backup.sh >> /var/log/mysql-backup.log 2>&1" >> /etc/crontab
Восстановление из бэкапа
# Распаковать и восстановить
gunzip < /var/backups/mysql/mydb_2026-01-25_02-00.sql.gz | mysql -u root -p mydb
Хранение бэкапов в облаке (S3/Backblaze)
# Установить AWS CLI
sudo apt install -y awscli
# Настроить
aws configure
# Загрузить в S3
aws s3 sync /var/backups/mysql/ s3://your-bucket/mysql-backups/ --storage-class STANDARD_IA
⚠️ Храните бэкапы вне сервера. Если сервер взломан или умер — локальный бэкап тоже потерян.
✅ ZevsHost делает автоматические снапшоты VPS раз в сутки. Плюс собственный скрипт бэкапа БД — идеальная защита.