我已经选择通过我的php应用程序安排定期的mysql转储。 Crontab设置为用户' www-data'如下:
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/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
即使现在它也无法正常工作
答案 0 :(得分: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
答案 1 :(得分:0)
您列出的cron应该在每小时的第1分钟执行。
我使用简单的python脚本做类似的事情:
import os
os.system('dump command for database1')
os.system('dump command for database2')
它让一切都井井有条。我在cronjob上运行脚本。
1 * * * * python /path/to/script