【问题标题】:Crontab won't run automaticallycrontab 不会自动运行
【发布时间】:2015-06-05 12:33:30
【问题描述】:

我已经设置了一个如下所示的 cron 作业,但它不会运行。当我手动运行脚本时,我没有看到任何错误。

#_____WPR Jobs
00 9 * * * mon-sat /var/spool/ftpexts/bin/exe_get_x_wpr.sh >> /var/spool/ftpexts/outboundlogs/exe_get_x_wpr.log
00 9 * * * mon-sat /var/spool/ftpexts/bin/exe_get_y_wpr.sh >> /var/spool/ftpexts/outboundlogs/exe_get_y_wpr.log
00 9 * * * mon-sat /var/spool/ftpexts/bin/exe_get_z_wpr.sh >> /var/spool/ftpexts/outboundlogs/exe_get_z_wpr.log

当我如下所示手动执行脚本时,它也可以顺利运行并带有日志记录。

/var/spool/ftpexts/bin/exe_get_x_wpr.sh >> /var/spool/ftpexts/outboundlogs/exe_get_x_wpr.log

【问题讨论】:

    标签: bash unix ubuntu crontab


    【解决方案1】:

    crontab 正在尝试将mon-sat 作为命令执行。

    星期几被指定为 crontab 条目的第 5 个字段。你有*,这意味着它在一周中的任何一天运行。删除第 5 个字段,使 mon-sat 成为第 5 个字段。 (有趣的是,直到现在我才知道 crontab 会识别名称。)

    更新:crontab(5) man page(输入 man 5 crontab 以在您的系统上阅读)说:

    名称也可用于“月份”和“星期几”字段。采用 特定日期或月份的前三个字母(大小写不 事情)。不允许使用名称范围或列表。

    你说mon-sat 为你工作。一个快速的实验表明名称范围确实有效,但由于文档说它们是不允许的,我建议不要依赖于此。如果您希望工作在周一到周六运行,请写 1-6 而不是 mon-sat

    【讨论】:

    • 这种对名称而不是数字的支持似乎是 Vixie 功能,而不是 POSIX 功能。 Solaris 和 AIX 不支持它,但 NetBSD、FreeBSD 和 Linux 支持。此外,crontab(5) 的 RedHat 手册页显示 Ranges or lists of names are not allowed,所以这在技术上仍然是错误的。
    • @Thisisn'tmyrealname:谢谢,我错过了。我会做一些测试来确认它是如何工作的并更新我的答案。
    • @Thisisn'tmyrealname:看起来它确实有效,但手册页上说这是不允许的,所以我不会依赖它。
    • 我不知道对做这种事情的软件持正面还是负面的看法。
    • @Thisisn'tmyrealname:同意。但也许文档与软件不同步。人们可以研究软件的历史和手册页,看看它们何时以及是否出现分歧。 (如果我愿意,我会这样做。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 2016-02-29
    • 2015-07-02
    • 1970-01-01
    相关资源
    最近更新 更多