Cron работа, которая уволена 8 раз, а не один раз. Летнее время?
Мы работаем на сервере Redhat (2.6.33.3-85.fc13.x86_64) и испытали странное поведение с нашей настройкой cron. Мы запускаем готовую установку cron.
У нас есть задача, которая выполняется ежедневно в 2 часа ночи и успешно выполняется в течение многих месяцев. Однако вчера (27.03.2011) утром было запущено 8 экземпляров задачи.
Вот соответствующий раздел нашего файла журнала cron:
...
Mar 27 02:00:01 fs1 CROND[19557]: (root) CMD (true && /home/youdev/you_server/NEW_FS1/housekeeping_scripts/copy_pdf_printer_files_to_fs2.sh)
Mar 27 02:00:01 fs1 CROND[19563]: (youdev) CMD (true && /home/youdev/you_server/NEW_FS1/backup_scripts/fetch_db_data.sh)
Mar 27 02:00:02 fs1 CROND[19597]: (youdev) CMD (true && /home/youdev/you_server/NEW_FS1/backup_scripts/fetch_db_data.sh)
Mar 27 02:00:12 fs1 CROND[19931]: (youdev) CMD (true && /home/youdev/you_server/NEW_FS1/backup_scripts/fetch_db_data.sh)
Mar 27 02:00:22 fs1 CROND[20060]: (youdev) CMD (true && /home/youdev/you_server/NEW_FS1/backup_scripts/fetch_db_data.sh)
Mar 27 02:00:32 fs1 CROND[20067]: (youdev) CMD (true && /home/youdev/you_server/NEW_FS1/backup_scripts/fetch_db_data.sh)
Mar 27 02:00:42 fs1 CROND[20077]: (youdev) CMD (true && /home/youdev/you_server/NEW_FS1/backup_scripts/fetch_db_data.sh)
Mar 27 02:00:52 fs1 CROND[20084]: (youdev) CMD (true && /home/youdev/you_server/NEW_FS1/backup_scripts/fetch_db_data.sh)
Mar 27 02:01:02 fs1 CROND[20094]: (youdev) CMD (true && /home/youdev/you_server/NEW_FS1/backup_scripts/fetch_db_data.sh)
Mar 27 02:01:02 fs1 CROND[20095]: (root) CMD (run-parts /etc/cron.hourly)
Mar 27 02:01:02 fs1 CROND[20096]: (root) CMD (true && /home/youdev/you_server/NEW_FS1/housekeeping_scripts/copy_pdf_printer_files_to_fs2.sh)
Mar 27 02:01:02 fs1 run-parts(/etc/cron.hourly)[20095]: starting 0anacron
...
Каждый из сценариев fetch_db_data.sh запущен правильно (это всего лишь сценарий оболочки, который вызывает rsync - и существуют файлы rsync tmp, также как и файлы, которые были успешно пропущены).
Это единственная наша работа, которая начинается в 02:00, но у нас есть работа, которая выполняется каждую минуту (copy_pdf_printer_files_to_fs2.sh), и она правильно запускалась только один раз в 02:00.
Единственное, что, как мы можем подумать, могло быть причиной этого, - это проблема перехода на летнее время (мы в Великобритании, поэтому перешли с GMT на BST в 02:00 соответствующего дня) - однако все проведенные нами раскопки говорят о том, что cron отлично справляется с вопросами перехода на летнее время. И даже тогда, разве мы не должны были ожидать 0 прогонов (как время пропущено с 00:59 до 02:00), а не 8?
Вот запись в crontab:
MAILTO=XXX@XXX.YYY
# BACKUP LATEST DB FROM LIVE (takes approx one hour)
0 2 * * * true && /home/youdev/you_server/NEW_FS1/backup_scripts/fetch_db_data.sh
Большое спасибо заранее за чтение этого и за любую помощь и предложения,
Крис.
2 ответа
Я бы использовал бритву Оккама с этим. Должно быть, часы Летнего времени меняются.
Пожалуйста, посмотрите ответ Даниэля ван Эдена на вопрос. Задание Cron, выполненное несколько раз в летнее время:
Это известная ошибка:
http://bugs.centos.org/view.php?id=5590
https://bugzilla.redhat.com/show_bug.cgi?id=436694
Я видел, как это произошло в CentOS 6.2 с cronie-1.4.4-7.el6.x86_64 31 марта (CET -> CEST)