В этой статье кратко рассмотрим, как создать MySQL бэкап вручную или в автоматическом режиме.

Создание бэкапа вручную

Сделать бекап на ТЕКУЩЕМ сервере:

mysqldump -u user_name -p database_name | gzip > /tmp/base.sql.gz

Скопировать архив с ТЕКУЩЕГО сервера на НОВЫЙ:

scp /tmp/base.sql.gz root@IP_ADDRESS:/tmp/

Восстановить на НОВОМ сервере:

zcat /tmp/base.sql.gz | mysql -u user_name -p database_name

 

Создание автоматического бэкапа

Добавить на кроне:

1 1 * * * . /var/www/backup/script/db_backup.sh
1 1 * * * find /var/www/backup/database/ -maxdepth 1 -mtime +3 -exec rm -rf {} \;

Создать по указанным путям скрипт db_backup.sh:

#!/bin/bash

BACKUP_SERVER="ip сервера, куда сохраняем бекап"
BACKUP_SERVER_DIR="home/dbbackup/название_проекта"
DATE=`date +%Y-%m-%d`
LOCAL_BACKUP_DIR="/var/www/backup/database/"
DB_NAME="название бд"
DB_USER="логин пользователя"

mysqldump --defaults-extra-file="/var/www/backup/script/config.cnf" -u $DB_USER $DB_NAME | gzip  > $LOCAL_BACKUP_DIR/$DB_NAME-$DATE.sql.gz

scp -i ~/.ssh/id_rsa $LOCAL_BACKUP_DIR/$DB_NAME-$DATE.sql.gz dbbackup@$BACKUP_SERVER:/$BACKUP_SERVER_DIR

Также файл config.cnf для хранения пароля:

[client]
password = "тут пароль"