1

我有一个调用 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

当我像这样 ./backup 手动运行这个 shell 脚本时,它会创建一个数据库备份文件,向我发送一封电子邮件并删除该文件。当 cron 调用此脚本时,它向我发送了一封空白电子邮件,并且它没有正确调用/运行 php 文件。这个问题的原因可能是什么?

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

4

2 回答 2

3

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

cd /path/to/writable/directory在该行之前放置一个明确的php

于 2012-04-04T09:43:36.053 回答
2

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

/usr/bin/php-cli backup.php
于 2012-04-04T09:43:18.067 回答