как создать скрипт для резервного копирования баз данных 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 
  • Печать эха в файле и запрос параллельно
  • замените несколько запятых на одну или несколько наборов фигурных скобок и исключение, что в одном или нескольких наборах фигурных скобок
  • Неверный код выхода awk
  • Есть ли способ разрешить все IP-адреса PIA VPN со сценарием?
  • Почему используется && в 75 раз быстрее, чем если ... fi и как сделать код более понятным
  • Как получить код выхода grep, но распечатать все строки?
  • Почему -a в «#! / Bin / sh -a» влияет на sed, а «set -a» - нет?
  • Возможно одновременное использование скобок (перестановки) и расширения массива?
  • Как извлечь текущую дату Date Log из файла catalina.out
  • передача результатов команды awk в качестве параметра
  • Удалите символ ^ L (aka \ f / FF / form-feed / page-break)
  • Interesting Posts

    Gentoo Hardened ест 3 ГБ памяти после работы в течение ~ 12 часов с очень небольшим количеством запущенных процессов

    Почему эта составная команда {…} не выходила при ошибке, когда используется с ||?

    Как сделать экран -R прикрепленным к самой молодой отдельной сессии?

    Сервер Node.js с daemontools постоянно перезапускается

    Невозможно убить процесс, а не зомби или непрерывный сон

    grep для строк, которые были найдены в предыдущем заявлении

    Изменена ли переменная среды $ SHELL только для интерактивных оболочек?

    находить файлы без расширения

    Что делает параметр -size Xrandr?

    Супер медленные интернет-запросы

    Как сделать уведомления для горячего подключения съемных носителей временными

    Как разрешить доступ к файлам в домашней папке пользователя без загрузки?

    Как запустить awk для некоторого количества строк.?

    Ядро Linux 3.3 регрессия мощности

    Ядро 4.10 / 4.12 с AMDGPU-PRO?

    Linux и Unix - лучшая ОС в мире.