我需要使用cron作业每30分钟恢复一次数据库(mysql)

时间:2010-10-26 20:43:45

标签: php mysql cron

我是cron jobs的新手,我需要每30分钟恢复一次数据库(mysql)。是否有一个cron作业命令可以从已被gzip压缩的.sql文件中恢复数据库?

或者我是否需要创建一个php脚本来执行此操作并创建一个cron作业来每30分钟调用一次该脚本?

此外,这是一个单独的问题,但仍然与cron作业有关,我正在使用cron作业每天备份一次不同的数据库,将其gzip并将其放在根目录上方的文件夹中。有没有办法(自动)删除超过一个月的任何东西?或者,至少保留最近的20个备份并删除其余备份?

关于这个主题的其他随机论坛帖子上没有很多好的教程。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:7)

关于如何导入转储文件,只需输入

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

进入cron工作。

更多详情:How do I restore a MySQL .dump file?

答案 1 :(得分:1)

您可以编写一个bash脚本来执行此操作。

mysql -uPutYourUserHere -pPutYourPasswordHere PutYourUserHere_databaseName < database.sql

没有任何东西可以自动删除。但你可以在你的cron工作中做到:

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

答案 2 :(得分:1)

MySQL无法直接处理gzip压缩数据,但通过管道gzcat然后将其传递给mysql是微不足道的:

gzcat name_of_file.sql.gz | mysql -u....