设置
/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
每隔一小时:
- 在日志文件中创建新行
- 添加日期
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 reload
and/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
另请参阅流程管理。