У меня есть сервер Ubuntu с базой данных Mysql. Я хотел бы настроить автоматическое резервное копирование этой базы данных в течение ночи на другом сервере (ovh, например).
Я не знаю то, что было бы лучшим инструментом для этого. Если у кого-то есть некоторые советы...
Заранее спасибо.
Самым легким способом автоматизировать эту задачу была бы комбинация Свалок MySQL и cronjob. Вы можете найти большую информацию об этой теме на этом и других сайтах, но ради завершения:
Создают mysqldump.sh файл
, Который будет содержать свалку mysql, приказывают, чтобы мы наметили в работе крона (замените пользователя, пароль и путь, чтобы соответствовать Вашей среде):
mysqldump -u root -p<mysql_root_password> --all-databases | gzip > /desired/backup/folder/mysqldb_`date +%F`.sql.gz
Отредактируйте: , Если Вы хотите, чтобы сценарий сохранил резервную копию в отдаленном месте, просто установите соответствующее устройство или разделите и используйте путь горы в сценарии.
Тест сценарий
Гарантирует, что у сценария есть разрешения выполнения:
chmod +x /path/to/mysqldump.sh
Выполняют сценарий:
sh /path/to/mysqldump.sh
И тест это работает правильно (Резервный файл будет создан в указанной резервной папке).
Создают и намечают новую работу крона
В типе
sudo crontab -e
командной строки И добавляют следующую линию в нижней части файла:
30 23 * * * /path/to/mysqldump.sh
Это выполнит сценарий каждый день в 23:30.
Расширяют этот простой сценарий
есть буквально множество вещей, которые Вы можете сделать, чтобы улучшить этот простой резервный метод:
Так не заканчиваются здесь и эксперимент! :-)
резервные инструменты Использования или облачные резервные услуги
, Хотя вышеупомянутый метод - один из самых легких и может быть расширен, чтобы удовлетворить Вашим определенным потребностям, стоит упомянуть, что есть другие альтернативы:
, Пожалуйста, обнажите в памяти, что я не связан ни в каком случае ни с одним из вышеупомянутых решений и услуг, и я перечисляю их только для справки, поэтому используйте их в Вас собственный риск.
Полезные ссылки / Ссылки:
Крон-> https://Свалка en.wikipedia.org/wiki/Cron
MySQL-> https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
Существует несколько способов автоматизации резервного копирования баз данных MySQL:
Скрипт Bash
# Backup storage directory
backup_folder=/var/backups
# Notification email address
recipient_email=<username@mail.com>
# MySQL user
user=<user_name>
# MySQL password
password=<password>
# Number of days to store the backup
keep_day=30
sqlfile=$backup_folder/all-database-$(date +%d-%m-%Y_%H-%M-%S).sql
zipfile=$backup_folder/all-database-$(date +%d-%m-%Y_%H-%M-%S).zip
# Create a backup
sudo mysqldump -u $user -p$password --all-databases > $sqlfile
if [ $? == 0 ]; then
echo 'Sql dump created'
else
echo 'mysqldump return non-zero code' | mailx -s 'No backup was created!' $recipient_email
exit
fi
# Compress backup
zip $zipfile $sqlfile
if [ $? == 0 ]; then
echo 'The backup was successfully compressed'
else
echo 'Error compressing backup' | mailx -s 'Backup was not created!' $recipient_email
exit
fi
rm $sqlfile
echo $zipfile | mailx -s 'Backup was successfully created' $recipient_email
# Delete old backups
#find $backupfolder -mtime +$keep_day -delete
find $backup_folder -mtime +$keep_day -delete
sudo apt-get install automysqlbackup
wget https://github.com/sixhop/AutoMySQLBackup/archive/master.zip
mkdir /opt/automysqlbackup
mv AutoMySQLBackup-master.zip
cd /opt/automysqlbackup
tar -zxvf AutoMySQLBackup-master.zip
./install.sh
sudo nano /etc/automysqlbackup/automysqlbackup.conf
CONFIG_configfile="/etc/automysqlbackup/automysqlbackup.conf"
CONFIG_backup_dir='/var/backup/db'
CONFIG_mysql_dump_username='root'
CONFIG_mysql_dump_password='my_password'
CONFIG_mysql_dump_host='localhost'
CONFIG_db_names=('my_db')
CONFIG_db_exclude=('information_schema')
CONFIG_mail_address='mail@google.com'
CONFIG_rotation_daily=6
CONFIG_rotation_weekly=35
CONFIG_rotation_monthly=150
automysqlbackup /etc/automysqlbackup/automysqlbackup.conf
Сторонний инструмент
Если вам нужно что-то готовое, легко использовать со многими параметрами, которые вы можете использовать SqlBak.
Плюсы:
Минусы: