設定

設定

設定

/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 reload和/或/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 的),並且多個副本(備份)不會出現在/etc/cron.hourly.

請注意,腳本中的最後一行可以簡化為:

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

另請參閱流程管理

相關內容