【问题标题】:How to test a cron job?如何测试 cron 作业?
【发布时间】:2011-08-15 19:24:04
【问题描述】:

我使用的是 Ubuntu Linux 10.0.4。我想每天每 6 小时运行一次脚本。当我发出sudo crontab -e 时,我看到:

# m h  dom mon dow   command
* 00,06,12,18 * * * /opt/scripts/selenium/run_nis_inf_tests.sh

但是,我的脚本没有看到预期的结果,我什至不确定它是否正在运行。有没有一种方法可以测试脚本是否正常运行,而不是等到指定时间。或者,我如何查看脚本生成的错误? - 戴夫

【问题讨论】:

  • 您还应该注意 cronjob 的文件名并避免下划线或扩展名。例如,在 Ubuntu 母亲(例如 Debian)上,我遇到了here 所述的问题。

标签: linux ubuntu cron crontab


【解决方案1】:

您可以将 MAILTO 变量更新为您的电子邮件地址,cron 应该通过电子邮件向您发送任何 STDOUT 和 STDERR 输出。还要检查您的系统日志文件 /var/log/messages 以查看脚本是否正在由 cron 执行。

-托尼

【讨论】:

  • 是否总是有成功/失败消息写入 /var/log/messages?如果是这样,它不包含关于我的 cron 的任何内容,这表明它没有运行。我还没有在我的机器上设置电子邮件,所以我会试一试,看看有什么效果。
  • 没有写入 /var/log/messages 但在 crontab 行上方添加 MAILTO 变量可以提供我正在寻找的反馈。 - 戴夫
  • 在 debian 系统中,默认日志是 /var/log/syslog
【解决方案2】:

Cron 应该邮寄它的结果,所以看起来你有问题。 在这里,您似乎缺少一个用户来运行脚本:

00,06,12,18 * * * user_name /opt/scripts/selenium/run_nis_inf_tests.sh

用需要运行脚本的用户名替换user_name,验证“run_nis_inf_tests.sh”的权限,你应该没问题。

【讨论】:

  • 当我尝试您的建议(添加用户名)时,我收到错误消息“/bin/sh: selenium: not found”。我使用的语法是“00 */1 * * * /opt/scripts/selenium/run_nis_inf_tests.sh”。
  • 是的,抱歉,在您的情况下不需要用户名,就像您使用 crontab -e 一样!你检查 syslog.conf 了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-26
  • 2012-08-02
  • 2017-05-25
  • 2020-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多