【问题标题】:Cronjobs are not running for perl script?Cronjobs 没有为 perl 脚本运行?
【发布时间】:2017-05-29 13:54:14
【问题描述】:

这是我的 crontab 行:

* * * * * /home/data/use.pl 

当我运行 perl use.pl 时,它运行正常。我需要自动运行上述文件,而不像终端中的 perl use.pl 那样每次都手动提供它。所以我尝试使用 cronjobs 修复它。但是上面的行不适合我。我该如何改造它。

【问题讨论】:

  • 你遇到了什么错误?
  • 当然有,否则你不会在这里。它做错了什么?
  • @gopi,你没看到下面的答案吗?您是说如果您运行perl use.pl 它可以工作,在cron 中您不会调用perl。看看下面的答案。
  • 首先确保您可以通过添加* * * * * arghh 得到错误。如果您没有收到错误,那么您需要先修复它,然后提供您在尝试运行use.pl 时遇到的错误。如果你确实收到了错误,那么你错了 use.pl 没有运行。
  • 根据我的经验,测试 cron 错误的最简单方法是将输出通过管道传输到日志文件。这比检查邮件系统(通常发生 cron 错误的地方)是否设置正确要简单。试试* * * * * /home/data/use.pl 1>/tmp/1.log 2>/tmp/2.log,然后查看这两个文件的内容,尤其是2.log。

标签: perl crontab


【解决方案1】:

该脚本没有您运行它的用户的相关权限。你可以这样做

chmod +x use.pl

或在 crontab 中指定 perl 的路径。

* * * * * /usr/bin/perl /home/data/use.pl

【讨论】:

  • 这只会使脚本可执行。但可能脚本内部有错误。
  • @Patrick85 他说脚本在 shell 中运行良好,只是不能在 cron 中工作,他说当我运行 perl use.pl 时它可以工作。
  • @Patrick85,你们可能都是对的。你们都可能错了。可能是执行脚本的权限问题,也可能是脚本本身的问题(权限问题,假设 cwd = $RealBin 等)
  • @ikegami 这就是为什么如果他尝试了,我正在等待 gopi 回答。
  • 恰恰相反。您不仅认为这是一个缺少的 exec 标志并回答好像这是问题所在,而且您拒绝了其他问题的可能性。我的 cmets 指出,您对 Patrick85 评论的驳回是不正确的,举了两个“脚本内部”可能发生的问题示例。
猜你喜欢
  • 2014-06-20
  • 1970-01-01
  • 1970-01-01
  • 2010-09-26
  • 1970-01-01
  • 2020-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多