Самым простым способом автоматизации этой задачи было бы сочетание MySQL Dumps и cronjob. Вы можете найти много информации по этой теме на этом и других интернет-сайтах, но для завершения:
Создайте файл mysqldump.sh
Который будет содержать команду mysql dump, которую мы запланируем в задании cron (замените пользователя, пароль и путь в соответствии с вашей средой):
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
И проверьте, что он работает правильно (файл резервной копии будет создан в указанной папке резервной копии).
Создать и запланировать новую работу cron
В командной строке введите
sudo crontab -e
И добавьте следующую строку внизу файла:
30 23 * * * /path/to/mysqldump.sh
Это будет выполнять сценарий каждый день в 23:30.
Расширить этот простой скрипт
Существует буквально масса вещей, которые вы можете сделать, чтобы улучшить этот простой метод резервного копирования:
- Резервное копирование в другую систему
- Мониторинг дискового пространства
- Электронная почта
- ...
Так что не кончайте здесь и экспериментируйте! :-)
Используйте инструменты резервного копирования или облачные службы резервного копирования
Хотя описанный выше метод является одним из самых простых и может быть расширен в соответствии с вашими конкретными потребностями, стоит отметить, что есть и другие альтернативы:
- инструменты резервного копирования, такие как AutoMySQLBackup, приложение с открытым исходным кодом, которое может упростить процесс настройки Email-уведомлений, сжатия, шифрования, ротации и типа (например, инкрементного) ваших резервных копий. Что касается Mai 2018, он доступен для Ubuntu Server через APT.
- облачные сервисы резервного копирования, такие как BackupBird, myRepono, Bitcan и т. д., которые могут быть интересны, если вы управляете несколькими серверами баз данных и хотите централизованно управлять всеми их резервными копиями.
Пожалуйста, помните, что я никоим образом не связан ни с одним из вышеупомянутых решений и услуг и перечисляю их только для справки, поэтому используйте их на свой страх и риск.
Полезные ссылки / ссылки:
Cron -> https://en.wikipedia.org/wiki/Cron
MySQL Dump -> https://dev.mysql.com/doc/refman/5.7/ru/mysqldump.html
date +%F
- это автоматически выберет комбинацию год + месяц + дата, соответствующую локали пользователя (например, я получуYYYY-MM-DD
).sudo crontab -e
и не забудьте сделать сценарий исполняемым:chmod +x /path/to/mysqldump.sh