Делюсь с вами простым и удобным скриптом для автоматического бэкапа mysql баз с помощью mysqldump -
AutoMySQLBackup. Это обычный bash скрипт, который упрощает рутинные задачи по бэкапу, предлагая встроенный функционал.
https://github.com/sixhop/AutoMySQLBackupОсновные возможности скрипта:
▪ Сжимает бэкапы баз и раскладывает их по отдельным директориям.
▪ Поддерживает многопоточные архиваторы типа pigz, позволяет управлять количеством потоков.
▪ Автоматически ротирует дневные, недельные, месячные архивы по заданным параметрам.
▪ Позволяет использовать ключи mysqldump.
▪ Умеет хранить настройки в отдельном конфигурационном файле.
▪ Можно гибко управлять набором баз для бэкапа, вручную указывая их или управляя списком с помощью шаблонов.
▪ Умеет отправлять результаты своей работы по почте.
▪ Может шифровать дампы указанным ключом.
▪ Запуск своего скрипта до или после выполнения бэкапа.
Вот простой конфиг для ежедневного бэкапа баз mysql за исключением
performance_schema и
information_schema. Ежедневные бэкапы хранятся 7 дней, недельные 31 день, месячные год.
CONFIG_mysql_dump_username='root'CONFIG_mysql_dump_password='parol'CONFIG_mysql_dump_host='localhost'CONFIG_backup_dir='/mnt/backup'CONFIG_multicore='no'CONFIG_db_names=()CONFIG_db_exclude=( 'performance_schema' 'information_schema' )CONFIG_db_exclude_pattern=()CONFIG_do_monthly='01'CONFIG_do_weekly='7'CONFIG_rotation_daily=6CONFIG_rotation_weekly=31CONFIG_rotation_monthly=360После работы сккрипта в директории /mnt/backup будет создана структура директорий:
◽ daily - ежедневные бэкапы, где каждая база будет в своей директории;
◽ fullschema - только структура всех баз данных;
◽ latest - если указать соответствующую настройку, то в этой директории всегда будут лежать бэкапы от последнего запуска. Удобно отсюда их забирать куда-то в другое место сразу после окончания бэкапа.
◽ monthly - месячные бэкапы;
◽ status - список баз каждого запущенного бэкапа;
◽ tmp - для временных файлов;
◽ weekly - недельные бэкапы;
Рекомендую так же прочитать мою
заметку про выбор параметров для mysqldump. Там есть важные моменты, которые влияют на успешность создания дампа.
#bash #mysql #backup