Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP中的crontab集定期备份MySQL数据库不起作用_Php_Mysql_Linux_Cron_Crontab - Fatal编程技术网

通过PHP中的crontab集定期备份MySQL数据库不起作用

通过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分钟

我提供了一个选项,可以通过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分钟执行一次,对吗? 我还将
/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秒备份一次数据库。丢失过去一两个小时内保存的所有数据的风险/损失是什么?也许每小时/每天备份更适合这种情况?