Ubuntu cron没有执行,但在命令行上工作正常

时间:2014-01-09 16:21:28

标签: php linux ubuntu cron backup

我有一个应该每周运行一次的备份cron作业。当我在命令行上执行它时它完全正常,但它永远不会在cron中执行。我的其他cron任务执行没有问题。我认为它必须与我的选项或不正确的语法有关。这是有问题的cron条目:

10 10 * * 0 php ~/v2/symfony/symfony cc; tar -czf ~/backups/schroeder/v2/v2_site_backup_`date +%Y-%m-%d_%H-%M`.tgz ~/v2/symfony | tee -a ~/log/weekly_backup.log

事实证明,当输入我的cron列表时,我需要逃避%。所以有效的命令是:

10 10 * * 0 php ~/v2/symfony/symfony cc; tar -czf ~/backups/schroeder/v2/v2_site_backup_`date +\%Y-\%m-\%d_\%H-\%M`.tgz ~/v2/symfony | tee -a ~/log/weekly_backup.log

1 个答案:

答案 0 :(得分:2)

crontab的环境非常小,因此您必须指明完整路径。

10 10 * * 0 /path/of/php /home/your_user/v2/symfony/symfony cc; tar -czf /home/your_user/backups/schroeder/v2/v2_site_backup_`date +%Y-%m-%d_%H-%M`.tgz /home/your_user/v2/symfony | tee -a /home/your_user/log/weekly_backup.log
           ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^                                 ^^^^^^^^^^^^^^^                                                                 ^^^^^^^^^^^^^^^                     ^^^^^^^^^^^^^^^

而不是

10 10 * * 0 php ~/v2/symfony/symfony cc; tar -czf ~/backups/schroeder/v2/v2_site_backup_`date +%Y-%m-%d_%H-%M`.tgz ~/v2/symfony | tee -a ~/log/weekly_backup.log

即,更改~的所有/home/your_user/

另外!将每个%转为here

date +%Y-%m-%d_%H-%M

必须是

date +\%Y-\%m-\%d_\%H-\%M