我有一个perl脚本,我安排它每天通过crontab运行。如果执行该脚本正常工作。但是在通过crontab执行时,它会将错误邮件发送到我的邮箱。
我是否应修改以通过crontab成功执行脚本?
答案 0 :(得分:2)
可能是$PATH
问题。确保您的Perl脚本位于$PATH
提到的位置,或者在crontab中具有绝对路径。这对于在Perl脚本中运行的任何脚本或程序也有效。 $PATH
变量通常必须在crontab文件中设置。
它可能是Perl脚本中使用的具有相对路径的文件,在手动执行时可以正常工作,但在cron
(不同的工作目录)运行时会失败。
Perl脚本是否具有执行权限(x
模式位设置)?当它与perl /path/to/script.pl
一起运行时,这不是必需的,但当它与/path/to/script.pl
一起运行时会失败。
编辑:
有关如何修复的建议:
在crontab中添加到$PATH
(对于示例脚本/path/to/script.pl
):
PATH=/bin:/usr/bin:/path/to
请务必包含其他所需路径(例如/bin
和/usr/ucb
)。
文件中已经存在PATH
定义的可能性。在这种情况下,只需将您的路径附加到它。
或者,您可以在cron作业行中指定完整路径,例如:
17 * * * * root /path/to/script.pl
修复权限:
chmod a+r+x /path/to/script.pl