【问题标题】:Perl not executing in crontabPerl 不在 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? (stackoverflow.com/questions/6829648/confused-with-my-cron-job)。至少,您在 /usr/sbin 和 /usr/lib 之间缺少一个 :。可能缺少 /usr/bin 整体。
  • 好的,谢谢大家,我删除了 PATH 并把 perl /path/to/perl/script/script.pl 和它的工作,但我不知道它为什么工作。如果你们知道,请告诉我

标签: perl cron crontab


【解决方案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 解释器位于这些目录之一中。
猜你喜欢
  • 2020-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-17
  • 1970-01-01
  • 2015-05-12
  • 2023-01-22
  • 2013-08-01
相关资源
最近更新 更多