Установка

Установка

Установка

У меня есть скрипт /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 reloadand/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), и что в файле /etc/cron.hourly.

Обратите внимание, что последнюю строку в вашем скрипте можно упростить до:

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

Пожалуйста, смотрите такжеУправление процессом.

Связанный контент