Crontab没有运行php文件

时间:2012-04-04 09:39:37

标签: 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调用此脚本时它向我发送一封空白电子邮件,它不会正确调用/运行php文件。可能是造成这个问题的原因是什么?

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

2 个答案:

答案 0 :(得分:3)

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

cd /path/to/writable/directory行前面加上明确的php

答案 1 :(得分:2)

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

/usr/bin/php-cli backup.php