【问题标题】:Confused with my Cron job对我的 Cron 工作感到困惑
【发布时间】:2011-10-13 08:46:53
【问题描述】:

我有一个 perl 脚本,我计划每分钟运行一次。 我已将 cron 作业设置为

* * * * * PATH= /usr/local/bin:/usr/bin:/usr/sbin:/usr/lib; perl /dm2/www/html/isos/pre5.3/autoDownload.pl 

我假设脚本每分钟执行一次,只是因为当我在 /var/log/ 中执行 cat cron 时看到如下条目

Jul 26 04:57:01 dmvbu-build crond[773]: (root) CMD (PATH= /usr/local/bin:/usr/bin:/usr/sbin:/usr/lib; perl /dm2/www/html/isos/pre5.3/autoDownload.pl)

Jul 26 04:58:01 dmvbu-build crond[687]: (root) CMD (PATH= /usr/local/bin:/usr/bin:/usr/sbin:/usr/lib; perl /dm2/www/html/isos/pre5.3/autoDownload.pl)

但我的问题是我有类似的陈述

print LOG "connecting to website\n"

其中 LOG 是名为 log.txt 的文件的文件描述符,该文件位于 dm2/www/html/isos/pre5.3/(与autoDownload.pl相同的地方)

但是在我看到 cron 日志文件中的条目后,我没有看到这个 log.txt 文件更新了新信息 但是当我手动运行代码时,我看到这个文件正在更新

【问题讨论】:

  • 您是否检查了 cron 发送的包含错误的邮件?或者,通过 logger 通过管道将 stdout 和 stderr 写入 syslog。
  • 顺便说一句,您为什么要以 root 身份运行此脚本?它可能与普通用户权限一样好。
  • 如何检查来自 cron 的邮件?
  • 我希望它只在 root 下工作
  • @mac:关于阅读root的邮件,你最好在serverfault.com上问。最常见的方法是使用别名,例如在后缀中是 root: admin@my.company.com/etc/aliases 中。

标签: linux perl cron


【解决方案1】:

您必须删除PATH= 之后的多余空格。

PATH=/usr/local/bin:/usr/bin:/usr/sbin:/usr/lib

【讨论】:

  • 抱歉,路径中没有空间。我只是在这里输入错误
【解决方案2】:

cron 行应该是

* * * * * PATH=/usr/local/bin:/usr/bin:/usr/sbin:/usr/lib perl /dm2/www/html/isos/pre5.3/autoDownload.pl

注意= 后面没有空格,perl 前面没有分号。

【讨论】:

    【解决方案3】:

    open()-ing 时提供日志文件的绝对路径(/dm2/www/html/isos/pre5.3/log.txt 而不仅仅是log.txt),否则您必须确保 cron 的“当前工作目录”在您想要的位置。

    还要检查执行此命令的用户是否具有文件的写权限。

    【讨论】:

    • 是的,我以为 cron 会自动运行当前目录中的脚本。谢谢
    【解决方案4】:

    当您有输出/错误时,调试程序会容易得多。 您还应该在脚本顶部或 cron 行中使用 perl 的绝对路径。然后你应该能够摆脱任何$PATH 的混乱。

    # Make sure you script is executable
    chmod a+x /dm2/www/html/isos/pre5.3/autoDownload.pl
    

    尝试在进程上方的 cron 中添加 MAILTO 行。

    MAILTO="me@example.com"
    * * * * * /usr/bin/perl /dm2/www/html/isos/pre5.3/autoDownload.pl
    

    或者将 cron 输出记录到文件中以监视错误。通过确保脚本的第一行 #!/usr/bin/perl 删除 crontab 中的 /usr/bin/perl

    * * * * * /dm2/www/html/isos/pre5.3/autoDownload.pl &> /tmp/autoDownload.log
    

    【讨论】:

      猜你喜欢
      • 2015-01-13
      • 2023-04-08
      • 2019-08-31
      • 2015-11-12
      • 2012-08-24
      • 2019-03-18
      • 2021-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多