セットアップ

セットアップ

セットアップ

次の内容を含むスクリプトがあります/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

エラーなしで再起動し、スクリプトは予定どおりに 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

こちらもご覧くださいプロセス管理

関連情報