设置

设置

设置

/etc/cron.hourly/msm-hourly我有一个包含以下内容的脚本:

#!/bin/sh
LOGPATH='/opt/msm/servers/cronscripts'
LOGFILE="$LOGPATH/msm-start.log"

# Make restart dead servers
echo "" >> $LOGFILE && /bin/date >> $LOGFILE && /etc/init.d/msm start >> $LOGFILE

每隔一小时:

  1. 在日志文件中创建新行
  2. 添加日期
  3. msm start然后命令的输出

有用从命令行运行之内/etc/cron.daily/

问题

从命令行运行时的输出如下所示:

[ msm-hourly.log ]

Thu Sep 12 20:56:51 UTC 2013
[ACTIVE] Server already started.

但是,运行一段时间后,每次迭代的输出如下所示:

[ msm-hourly.log ]

Thu Sep 12 20:56:51 UTC 2013
[ACTIVE] Server already started.


Thu Sep 12 21:01:02 UTC 2013
Thu Sep 12 21:01:02 UTC 2013

Thu Sep 12 21:01:02 UTC 2013

Thu Sep 12 21:01:02 UTC 2013

Thu Sep 12 21:01:02 UTC 2013

Thu Sep 12 21:01:02 UTC 2013
[ACTIVE] Server already started.
[ACTIVE] Server already started.
[ACTIVE] Server already started.
[ACTIVE] Server already started.
[ACTIVE] Server already started.
[ACTIVE] Server already started.

以下是 的输出/var/logs/cron

Sep 12 21:01:02 server run-parts(/etc/cron.hourly)[19497]: starting msm-hourly
Sep 12 21:01:02 server run-parts(/etc/cron.hourly)[19498]: starting msm-hourly
Sep 12 21:01:02 server run-parts(/etc/cron.hourly)[19522]: starting msm-hourly
Sep 12 21:01:02 server run-parts(/etc/cron.hourly)[19541]: starting msm-hourly
Sep 12 21:01:02 server run-parts(/etc/cron.hourly)[19549]: starting msm-hourly
Sep 12 21:01:02 server run-parts(/etc/cron.hourly)[19565]: starting msm-hourly
Sep 12 21:01:03 server run-parts(/etc/cron.hourly)[20166]: finished msm-hourly
Sep 12 21:01:03 server run-parts(/etc/cron.hourly)[20182]: finished msm-hourly
Sep 12 21:01:03 server run-parts(/etc/cron.hourly)[20243]: finished msm-hourly
Sep 12 21:01:03 server run-parts(/etc/cron.hourly)[20288]: finished msm-hourly
Sep 12 21:01:04 server run-parts(/etc/cron.hourly)[20310]: finished msm-hourly
Sep 12 21:01:04 server run-parts(/etc/cron.hourly)[20315]: finished msm-hourly

问题

我尝试替换并重新编写脚本,然后使用/etc/init.d/crond reloadand/or /etc/init.d/crond restart

一切重新启动,没有任何错误,并且脚本每小时按要求触发一次,只是多了一些额外的行。

我该如何追踪这个问题以更好地了解发生了什么,并修复它以便 msm-hourly 每小时只运行一次?

答案1

检查/etc/crontab以确保该行cron.hourly与下面的行类似(特别注意只有分钟字段有一个数字,其余都是星号)并且只出现一次。

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly

另外,请确保您的脚本(或 /etc/cron.hourly)未输入到任何其他 crontab 中,包括用户(或 root)的 crontab,并且不会出现多个副本(备份)/etc/cron.hourly

请注意,脚本的最后一行可以简化为:

{ echo && /bin/date && /etc/init.d/msm start; } >> $LOGFILE

另请参阅流程管理

相关内容