Мне нужно каждые 30 минут восстанавливать базу данных (mysql) с помощью задания cron - PullRequest
6 голосов
/ 27 октября 2010

Я новичок в заданиях cron, и мне нужно каждые 30 минут восстанавливать базу данных (mysql). Есть ли команда cron job, которая может восстановить базу данных из файла .sql, который был заархивирован?

Или мне нужно создать php-скрипт для этого и создать задание cron для вызова этого скрипта каждые тридцать минут?

Кроме того, и это отдельный вопрос, но он все еще связан с заданиями cron. Я использую задание cron для резервного копирования другой базы данных один раз в день, распаковываю ее и помещаю в папку над корнем. Есть ли способ (автоматически) удалить что-либо старше месяца? Или, по крайней мере, сохранить последние 20 резервных копий и удалить остальные?

Существует не так много хороших учебников по этой теме, кроме случайных сообщений на форуме. Любая помощь приветствуется.

Ответы [ 3 ]

7 голосов
/ 27 октября 2010

Относительно того, как импортировать файл дампа, просто вставьте

mysql -u user -ppassword databasename < /path/to/dump.sql 

в задание cron.

Подробнее: Как восстановить файл MySQL .dump?

1 голос
/ 27 октября 2010

MySQL не может обрабатывать данные gzipped напрямую, но тривиально передать через gzcat, а затем передать это mysql:

gzcat name_of_file.sql.gz | mysql -u....
1 голос
/ 27 октября 2010

Вы можете написать скрипт bash для этого.

mysql -uPutYourUserHere -pPutYourPasswordHere PutYourUserHere_databaseName < database.sql

Нет ничего для автоматического удаления чего-либо. Но вы можете сделать в своей работе cron:

find /path/to/files -mtime +30 -exec rm  {}\;
...