
セットアップ
次の内容を含むスクリプトがあります/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
および/または が続くスクリプトを置き換えて作り直すことを試みました/etc/init.d/crond restart
。
エラーなしで再起動し、スクリプトは予定どおりに 1 時間ごとに実行されます。ただし、余分な行がすべてあります。
何が起こっているのかをよりよく理解し、msm-hourly が 1 時間に 1 回だけ実行されるように修正するには、これを追跡するにはどうすればよいですか?
答え1
/etc/crontab
の行がcron.hourly
以下の行と似ていること (特に、分フィールドのみに数字があり、残りはアスタリスクであることに注意してください) と、1 回だけ表示されることを確認します。
17 * * * * root cd / && run-parts --report /etc/cron.hourly
また、スクリプト (または /etc/cron.hourly) がユーザー (または root) の crontab を含む他の crontab に入力されていないこと、および複数のコピー (バックアップ) が に表示されていないことを確認してください/etc/cron.hourly
。
スクリプトの最後の行は次のように簡略化できることに注意してください。
{ echo && /bin/date && /etc/init.d/msm start; } >> $LOGFILE
こちらもご覧くださいプロセス管理。