通过PHP中的crontab集定期备份MySQL数据库不起作用
我提供了一个选项,可以通过php应用程序定期安排mysql转储。 为用户“www数据”设置了Crontab,如下所示:通过PHP中的crontab集定期备份MySQL数据库不起作用,php,mysql,linux,cron,crontab,Php,Mysql,Linux,Cron,Crontab,我提供了一个选项,可以通过php应用程序定期安排mysql转储。 为用户“www数据”设置了Crontab,如下所示: 1 * * * * mysqldump --user=root --password=1 --host=localhost dbname > /var/www/myapp/../backups/db_`date '+%F-%H-%M-%S'`.sql 当我执行crontab-uwww-data-l时,我可以看到上面的cron 问题是这个cron没有被执行。它应该每1分钟
1 * * * * mysqldump --user=root --password=1 --host=localhost dbname > /var/www/myapp/../backups/db_`date '+%F-%H-%M-%S'`.sql
当我执行crontab-uwww-data-l
时,我可以看到上面的cron
问题是这个cron没有被执行。它应该每1分钟执行一次,对吗?
我还将/var/www
的权限设置为777。仍然没有创建该文件
mysqldump --user=root --password=1 --host=localhost dbname > /var/www/myapp/../backups/db_`date '+%F-%H-%M-%S'`.sql
当我在终端中键入此命令时,文件创建得很好。问题只在于cron作业。请帮忙
更新
我把它改成了
* * * * * mysqldump --user=root --password=1 --host=localhost dbname > /var/www/myapp/../backups/db_`date '+%F-%H-%M-%S'`.sql
即使现在它不工作您列出的cron应该在每小时的第一分钟执行 我使用一个简单的python脚本执行类似的操作:
import os
os.system('dump command for database1')
os.system('dump command for database2')
它让我一切井然有序。我在cronjob上运行脚本
1 * * * * python /path/to/script
有时,crontab并不具备常规shell所具备的所有环境变量 可能它不知道在哪里可以找到mysqldump。您可以尝试给出该命令的完整路径,如下所示:
* * * * * /usr/bin/mysqldump --user=root --password=1 --host=localhost dbname > /var/www/myapp/../backups/db_`date '+%F-%H-%M-%S'`.sql
1****
是“每小时以每小时一分钟的速度运行”,让它“每分钟运行一次”,改为“***
”。感谢您在@newfurnity发表的评论。问题是,在我的应用程序中,有一个选择框,用户可以从中选择1分钟、15分钟、30分钟或1小时的备份间隔。很抱歉,我需要它每1分钟运行一次。根据数据库的大小,存在一些严重的问题,即是否真正需要每60秒备份一次数据库。丢失过去一两个小时内保存的所有数据的风险/损失是什么?也许每小时/每天备份更适合这种情况?