0

我提供了一个选项来通过我的 php 应用程序安排定期 mysql 转储。为用户“www-data”设置了 Crontab,如下所示:

1 * * * * mysqldump --user=root --password=1 --host=localhost dbname > /var/www/myapp/../backups/db_`date '+%F-%H-%M-%S'`.sql

当我这样做时,crontab -u www-data -l我可以看到上面的 cron。

问题是这个 cron 没有被执行。它应该每 1 分钟执行一次,对吗?我还设置了/var/wwwas 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

即使现在它也不起作用

4

2 回答 2

1

有时 crontab 并不具备常规 shell 所具备的所有环境变量。

也许它不知道在哪里可以找到 mysqldump。您可以尝试提供命令的完整路径,如下所示:

* * * * * /usr/bin/mysqldump --user=root --password=1 --host=localhost dbname > /var/www/myapp/../backups/db_`date '+%F-%H-%M-%S'`.sql
于 2012-10-05T12:39:57.173 回答
0

您列出的 cron 应该在每小时的第一分钟执行。

我用一个简单的 python 脚本做类似的事情:

import os
os.system('dump command for database1')
os.system('dump command for database2')

它让我的一切都井井有条。我在 cronjob 上运行脚本。

1 * * * * python /path/to/script
于 2012-10-05T05:01:02.513 回答