我是cron jobs的新手,我需要每30分钟恢复一次数据库(mysql)。是否有一个cron作业命令可以从已被gzip压缩的.sql文件中恢复数据库?
或者我是否需要创建一个php脚本来执行此操作并创建一个cron作业来每30分钟调用一次该脚本?
此外,这是一个单独的问题,但仍然与cron作业有关,我正在使用cron作业每天备份一次不同的数据库,将其gzip并将其放在根目录上方的文件夹中。有没有办法(自动)删除超过一个月的任何东西?或者,至少保留最近的20个备份并删除其余备份?
关于这个主题的其他随机论坛帖子上没有很多好的教程。任何帮助表示赞赏。
答案 0 :(得分:7)
关于如何导入转储文件,只需输入
即可mysql -u user -ppassword databasename < /path/to/dump.sql
进入cron工作。
答案 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....