我需要使用 cron 作业每 30 分钟恢复一次数据库 (mysql)
我是 cron 作业的新手,我需要每 30 分钟恢复一次数据库 (mysql)。是否有一个 cron 作业命令可以从已压缩的 .sql 文件恢复数据库?
或者我是否需要创建一个 php 脚本来执行此操作并创建一个 cron 作业来每三十分钟调用此脚本?
另外,这是一个单独的问题,但仍然与 cron 作业相关,我使用 cron 作业每天备份一次不同的数据库,对其进行 gzip 并将其放在根目录上方的文件夹中。有没有办法(自动)删除超过一个月的内容?或者,至少保留最近的 20 个备份并删除其余的?
除了随机的论坛帖子之外,关于这个主题的好教程并不多。任何帮助表示赞赏。
I'm new to cron jobs and I need to restore a database (mysql) every 30 minutes. Is there a cron job command that can restore a database from a .sql file that's been gzipped?
Or do I need to create a php script to do this and create a cron job to call this script every thirty minutes?
Also, and this is a separate question but still related to cron jobs, I'm using a cron job to backup a different database once a day, gzip it and put it in a folder above the root. Is there a way to (automatically) delete anything older than a month? Or, at least, keep the most recent 20 backups and delete the rest?
There's not a lot of good tutorial out there on this subject other that random forum posts. Any help is appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
关于如何导入转储文件,只需将其放入
cron 作业中即可。
更多详细信息:如何恢复 MySQL .dump 文件?
Regarding how to import a dump file, simply put a
into the cron job.
More details: How do I restore a MySQL .dump file?
您可以编写一个 bash 脚本来执行此操作。
没有什么可以自动删除某些东西。但你可以在你的 cron 工作中做:
You can write a bash script to do this.
There isn't anything to automatically delete something. But you can do in your cron job:
MySQL 无法直接处理 gzip 压缩的数据,但通过 gzcat 进行管道传输然后将其传输到 mysql 是很简单的:
MySQL can't handle the gzipped data directly, but it's trivial to pipe through gzcat and then pipe that to mysql: