Perl 不在 crontab 中执行
Posted
技术标签:
【中文标题】Perl 不在 crontab 中执行【英文标题】:Perl not executing in crontab 【发布时间】:2011-10-14 23:02:33 【问题描述】:我的 perl 脚本没有在 crontab 中执行,
我不知道如何确认,但我没有看到脚本结果或输出。
但在 cron 日志中,我看到一个类似的条目 7 月 28 日 12:35:01 dvsbi-build crond[13469]: (root) CMD (PATH=/usr/local/bin:/usr/sbin/usr/lib perl /dm2/www/html/isos/preFCS5.3 /autodownload.pl)
我将 cron 作业设置为
35 12 * * 2-6 PATH=/usr/local/bin:/usr/sbin/usr/lib perl /dm2/www/html/isos/preFCS5.3/autodownload.pl
我看不到 perl 脚本的结果。在脚本中,我已将所有调试语句重定向到 LOG 文件,但没有看到日志文件更新。
perl 脚本可以在终端中的任何地方手动运行,通过提供类似
的路径perl /dm2/www/html....../autoDownload.pl
我还给出了脚本内日志文件的完整路径。
【问题讨论】:
你可以尝试执行“which perl”来查看它的位置吗? cron 条目中的 PATH 是否正确? 为什么自上一个问题以来更改了 PATH? (***.com/questions/6829648/confused-with-my-cron-job)。至少,您在 /usr/sbin 和 /usr/lib 之间缺少一个 :。可能缺少 /usr/bin 整体。 好的,谢谢大家,我删除了 PATH 并把 perl /path/to/perl/script/script.pl 和它的工作,但我不知道它为什么工作。如果你们知道,请告诉我 【参考方案1】:您应该在 cron 中使用 perl 的完整路径。 cron 的一些实现限制了环境变量的使用。
尝试使用which perl
找出 perl 在您系统上的位置,就像 sergio 评论的那样。
鉴于 perl 在 /usr/bin 中,请尝试以下操作:
35 12 * * 2-6 /usr/bin/perl /dm2/www/html/isos/preFCS5.3/autodownload.pl
【讨论】:
好的,谢谢大家,我删除了 PATH 并把 perl /path/to/perl/script/script.pl 和它的工作,但我不知道它为什么工作。如果你们知道,请告诉我 通常 cron 有自己的 PATH 变量。它通常包含/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
。您的行工作的原因是您的 perl 解释器位于这些目录之一中。以上是关于Perl 不在 crontab 中执行的主要内容,如果未能解决你的问题,请参考以下文章