설정

설정

설정

/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)가 입력되지 않았는지 확인하고 여러 복사본(백업)이 /etc/cron.hourly.

스크립트의 마지막 줄은 다음과 같이 단순화될 수 있습니다.

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

또한 참조하시기 바랍니다공정 관리.

관련 정보