Я знаю, что существует способ использовать cronjob и bashscript, который выполняется. Я уже настроил a .my.cnf
для моего пользователя SQL, таким образом, я не должен буду вставлять пароль в bashscript.
Все учебные руководства, которые я нахожу, действительно имеют некоторые отдельно оплачиваемые предметы, в которых я не нуждаюсь, и в настоящее время я не чувствую к уверенному для создания сценария сам.
У Вас есть идея или учебное руководство, которое просто и легко?
На самом деле нет необходимости в bash-скрипте. Сначала выясните, какая команда резервного копирования подойдет вам. В принципе, вы можете сделать что-то так же просто, как:
mysqldump > /path/to/mysqldump.sql 2>/path/to/mysqldump.err
Это запишет содержимое всех баз данных в файл с именем mysqldump.sql
. Форма этого такова, что если вам нужно восстановить базу данных после аварии, все, что вам нужно сделать, это mysql < /path/to/mysqldump.sql
. Более того, mysqldump
сохраняет целостность базы данных, то есть он создаст непротиворечивую копию базы данных, даже если транзакция происходила во время дампа. Если есть ошибка, она будет записана в mysqldump.err
.
Вам может потребоваться исследовать такие параметры, как -u
, --login-path=local
и --events
. Также вы можете указать определенное --databases
для резервного копирования. Ради этого обсуждения я не буду вдаваться во все это.
Если команда mysqldump
работает для вас, вы захотите, чтобы она запускалась автоматически как задание cron. Чтобы запускать дамп ежедневно в 22:00, укажите это на вкладке cron:
0 22 * * * mysqldump ... (etc)
Конечно, это будет ежедневно перезаписывать базу данных сброса. Чтобы сохранить 30 копий, вам нужно использовать logrotate
. В /etc/logrotate.d
создайте новый файл с именем (скажем) mysqldump
. В этом файле введите:
/path/to/mysqldump.sql {
su (your username)
rotate 30
daily
missingok
notifempty
}
Сохраните файл и перезапустите logrotate.
Logrotate ежедневно посещает ваш каталог mysqldump и переименовывает самый новый в mysqldump.sql.1
, самый новый-но-один в mysqldump.sql.2
и так далее. Если у вас уже есть 30 копий, он удалит самую старую.
Что касается учебников, то вам они не нужны. Просто прочитайте man mysqldump
, man crontab
и man logrotate
. Это все очень хорошо понятные инструменты, которые будут просто работать.