Php UbuntuCron不执行,但在命令行上运行良好

Php UbuntuCron不执行,但在命令行上运行良好,php,linux,ubuntu,cron,backup,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/

我有一个备份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

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/
更改所有
~

还有!将每个
%
转义为:

一定是

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

谢谢我是否也需要更改其他2个“~”引用?若否,原因为何**编辑:别担心,我错过了你帖子中的“全部”。再次感谢!不幸的是,没有。日志也没有吐出任何东西。下面是我们每天运行的另一个非常好的任务:{5 3***php~/v2/symfony/symfony dbBackup--verbose=true | tee-a~/v2/symfony/log/db_backup.log}Ops现在我看到我有两个星号在一起,还保留了一个星号。如果您在命令行中执行这个确切的命令会怎么样?如果我执行我最初发布的命令,它会工作,如果我使用您发布的命令替换我的用户,它也会工作。都不能通过cron工作。哦,现在我明白了,您需要在
日期+%Y-%m-%d\u%H-%m
中转义
%
。读入
date +\%Y-\%m-\%d_\%H-\%M