В этой статье кратко рассмотрим, как создать 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 = "тут пароль"
0 комментариев