Cronjob没有运行php文档


Cronjob not running php document

我有一个调用shell脚本的cronjob。在这个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脚本时/备份它创建了数据库的备份文件,给我发了一封电子邮件并删除了该文件。当cron调用这个脚本时,它会向我发送一封空白电子邮件,并且它没有正确调用/运行php文件。这个问题的原因可能是什么?

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

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

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

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

/usr/bin/php-cli backup.php