linux - crontab 作业跳过随机运行

标签 linux unix cron crontab redhat

我有一个 crontab 作业设置,每 5 分钟运行一次。它运行良好,没有任何问题。但有时运行失败。
例如
它在一个小时的第 5、10、15 分钟运行良好,但第 20 分钟不会运行,但在第 25 分钟再次运行良好。
下一次可能是第 55 分钟失败。 (随机服务器上的随机时间)

我 checkin /var/log/cron 并且所有已执行的作业都有条目,但对于错过的作业,甚至没有条目。

例如。在下面的/var/log/cron 作业中,rmlogs 在 21.35 运行良好,错过了在 21.40 运行,但在 21.45 再次运行。

Jun 12 21:35:01 [serverxxxx] CROND[4167]: (vfhttpd) CMD (/opt/vmware/vfabric-web-server/http-proxy/tools/rmlogs -t 5 >> /opt/vmware/vfabric-web-server/http-proxy/logs/rmlogs.log 2>&1 #PUPPET)
Jun 12 21:40:01 [serverxxxx] CROND[4201]: (root) CMD (/usr/lib64/sa/sa1 -S DISK -F 1 1)
Jun 12 21:41:02 [serverxxxx] CROND[4213]: (root) CMD (/usr/local/bin/monitor_mcollective >/dev/null 2>&1 #PUPPET)
Jun 12 21:45:01 [serverxxxx] CROND[4225]: (riak) CMD (/opt/riaktools/riak-create-logs -p /var/log/riak > /dev/null 2>&1 #PUPPET)
Jun 12 21:45:01 [serverxxxx] CROND[4227]: (vfhttpd) CMD (/opt/vmware/vfabric-web-server/http-proxy/tools/rmlogs -t 5 >> /opt/vmware/vfabric-web-server/http-proxy/logs/rmlogs.log 2>&1 #PUPPET)
Jun 12 21:50:01 [serverxxxx] CROND[4665]: (root) CMD (/usr/lib64/sa/sa1 -S DISK -F 1 1)
Jun 12 21:50:01 [serverxxxx] CROND[4666]: (vfhttpd) CMD (/opt/vmware/vfabric-web-server/http-proxy/tools/rmlogs -t 5 >> /opt/vmware/vfabric-web-server/http-proxy/logs/rmlogs.log 2>&1 #PUPPET)
Jun 12 21:52:01 [serverxxxx] CROND[4700]: (root) CMD (/usr/local/bin/refresh-mcollective-metadata #PUPPET)

最佳答案

您有理由怀疑您的 cron 作业是否确实每 5 分钟启动一次。
为了排除疑问,您可以扩展 crontab 行,其中包含带有前缀的 cron 作业:

  date >>/tmp/base_name_of_your_cronjob.log; 

并检查此附加日志文件。
如果此日志文件每 5 分钟包含一次没有间隔的条目,那么您应该调查/var/cron/log 是否在每次启动 cron 作业时都获得一条新记录,包括 cron 作业是否崩溃的情况。

额外的检查点是确保 cron 守护程序已经永久运行并且没有重新启动。您可以通过检查其过程来做到这一点,例如
 ps -ef|grep crond 

关于linux - crontab 作业跳过随机运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24210489/

相关文章:

java - 测试 RDBMS 和操作系统

node.js - 设置终端命令以在 Crontab 中运行

linux - Bash while 在两次之间循环

PHP、x-cart、潜在的安全漏洞

linux - 预测操作系统崩溃

linux - 如何以不同的名称保存日志文件

linux - 设置 bash shell 或命令提示符以运行 Python 项目

php - 使用 cron 作业发送带有不同附件的群发电子邮件

ruby - 在 cron 中为 whenever 设置路径以便它可以找到 ruby

c - 如何避免在 Linux 上的 strftime() 中调用过多的 stat(/etc/localtime)?