как создать скрипт для резервного копирования баз данных MySQL на отдельные файлы?

Мне нужно создать сценарий для автоматизации процесса резервного копирования для моего сервера базы данных. Сегодня на сервере имеется 19 баз данных и для предотвращения создания какой-либо схемы и не предусмотрены сценарием, я бы хотел, чтобы она резервировала все базы данных, перечисленные в запросе «show schemas».

Моя идея состоит в том, что каждая схема сбрасывается дважды (т. Е. В 0h00 и 12h00) в день, сжимается и сохраняется в папке /home/{user}/database_backup/daily/[day_of_week] .

Раз в неделю все папки [day_of_week] сжимаются и сохраняются в /home/{user}/database_backup/weekly/[week_of_month] .

Наконец, раз в месяц все [week_of_month] будут сжаты сохраненными в /home/{user}/database_backup/monthly/ и останутся там, чтобы другое приложение могло выполнить резервное копирование на ленту.

Сегодня это приложение для резервного копирования на магнитную ленту ежедневно поддерживает резервное копирование /var/lib/mysql , но должно быть, восстановление этих файлов или использование их на другом сервере базы данных несколько сложно.

Я знаю, что это слишком открытый вопрос, но помощь, как всегда, ценится.

One Solution collect form web for “как создать скрипт для резервного копирования баз данных MySQL на отдельные файлы?”

Вы можете перебрать все базы данных на сервере и экспортировать их один за другим, как это в сценарии оболочки:

 #!/bin/sh HOSTNAME='localhost' MYSQLUSER='root' MYSQLPASS='xyz' for DB in $(mysql -h $HOSTNAME -u $MYSQLUSER --password=${MYSQLPASS} --batch --skip-column-names --execute="show databases"); do local FILENAME=${HOSTNAME}_Database_${DB}.sql.gz mysqldump $DB -h $HOSTNAME -u $MYSQLUSER --password=${MYSQLPASS} --triggers --routines --event | gzip -c > $FILENAME done 
  • Как преобразовать строку в массив в сценарий оболочки
  • Объединение нескольких выходов grep в переменную
  • Сценарий Bash для извлечения некоторой информации из HTML-страниц Ebay
  • Копировать вывод curl в файл
  • Доступ к вторичным переменным
  • Как безопасно искать $ HOME / .bashrc?
  • Лучший способ запуска одиночного цикла вместо двух для циклов
  • Как я могу использовать регулярное выражение для извлечения текста, следующего за двумя условиями, в переменную?
  • Чтение .zshrc в X сеансе открыто? / Как выполнить скрипт в X сеансе открытия?
  • Ввод папки с пробелами и escape-символами с использованием bash
  • Количество элементов в массиве bash, где имя массива является динамическим (т.е. хранится в переменной)
  • Linux и Unix - лучшая ОС в мире.