Cronjob未运行php文档

Cronjob未运行php文档,php,shell,cron,Php,Shell,Cron,我有一个cronjob调用shell脚本。在shell脚本中,我有以下几行代码: php backup.php (cat db-backup.sql ; uuencode db-backup.sql db-backup.sql) | mailx -s 'Database Daily Backup' mail@mail.com rm -f db-backup.sql 当我像这样手动运行这个shell脚本时./backup会创建数据库的备份文件,向我发送电子邮件并删除该文件。当cron调用此脚本时

我有一个cronjob调用shell脚本。在shell脚本中,我有以下几行代码:

php backup.php
(cat db-backup.sql ; uuencode db-backup.sql db-backup.sql) | mailx -s 'Database Daily Backup' mail@mail.com
rm -f db-backup.sql
当我像这样手动运行这个shell脚本时./backup会创建数据库的备份文件,向我发送电子邮件并删除该文件。当cron调用此脚本时,它会向我发送一封空白电子邮件,并且不会正确调用/运行php文件。这个问题的原因可能是什么


注意:shell脚本和php文件都有-rwxr-xr-x perms。

在创建cron脚本时使用完整路径。例如:

/usr/bin/php-cli backup.php

创建cron脚本时使用完整路径。例如:

/usr/bin/php-cli backup.php

cron
可能没有在您的用户帐户具有写入权限的目录中执行脚本。(在我的系统上,
ls-l/proc/$(pidof cron)/cwd
显示当前工作目录为
/var/spool/cron/


将显式
cd/path/to/writable/directory
放在
php
行之前。

cron
可能没有在您的用户帐户具有写入权限的目录中执行脚本。(在我的系统上,
ls-l/proc/$(pidof cron)/cwd
显示当前工作目录为
/var/spool/cron/


php
行前面放一个显式的
cd/path/to/writable/directory

是的,这就是问题所在。谢谢你的帮助:)太好了。不要忽视,这往往是造成
cron
问题的原因:是的,这就是问题所在。谢谢你的帮助:)太好了。不要忽视,这往往是造成
cron
问题的原因: