Что может привести к тому, что cron будет работать дважды в тот же момент?

У меня есть cron, который настроен для запуска каждый понедельник в 1 час ночи

0 1 * * 1 /script/dir/script >> /script/dir/file.log 

После двух лет бега, как и ожидалось, он продлился дважды 18 июня, второй раз наступил ½ – 1 секунду после первого. Что могло случиться?

Он не был запущен ни первым, ни вторым человеком.

Сценарий связан с веб-сайтом, но он находится вне корня документа.

Возможно ли, что часы были синхронизированы в тот же момент, заставляя его назад 1 секунду и перезапуская cron в 1 час ночи?

В конце концов, может быть, что jippie на что-то наделает: хотя 1-й уровень действительно был вставлен 1 июля, в некоторых случаях GPS появляется ошибка (пожалуйста, прочитайте полный поток), что вызывает непрерывное объявление секунд прыжка. Другими словами, второй флаг скачка был объявлен из многих источников ранжирования, каждый день с 30 июня. Это фиксируется, когда мы говорим, снова возвращаем тему ответов NTP. Многочисленные системы были поражены 31 июля / 1 августа из-за этого, как и 30 июня (сбой ядра Linux) / 1 июля (проблемы с процессором Java).

Странно, что это произошло 18 июня. В то же время в вашем журнале ядра было какое-либо сообщение «Вторжение в секунду»? Ваш сервер находится в UTC + 1 (BST)? Если в журнале ядра отображается сообщение о скачках, в какой версии ntpd и версии ядра вы работаете? Во всех версиях ntpd, с которыми я столкнулся, скачок только когда-либо распространяется на ядро ​​в последний день месяца, поэтому вся теория второго прыжка может быть красной селедкой здесь.

Мой ответ ниже должен быть неправильным , я смутил дату: самая последняя секунда прыжка была вставлена ​​30 июня 2012 года в 23:59:60 UTC. Не 18 июня.


Второй прыжок, который был введен в этот день.

Високосные секунды не так предсказуемы, как високосные годы, они обычно вызваны большими землетрясениями, цунами, … такими вещами. Если високосный год достаточно предсказуем (примерно каждые четыре года), то прыжок второй нет . Есть комиссия ярких умственных людей (я верю в ООН), которые решают, что нужно ввести второй прыжок. Это можно предсказать только за 60 дней. Многим системам не нравится время, чтобы перейти от …: 59 до …: 60, прежде чем идти …: 00. Базы данных не любят время, отведенное на второй, они очень разборчивы в отношении временных меток, происходящих только один раз.

https://en.wikipedia.org/wiki/Leap_second#Announcement_of_leap_seconds

Я тоже получаю двойной запуск cron. Два одновременных скрипта, считывающих и удаляющих сообщения об ошибках. Удерживался, возвращаясь к этой теме, чтобы узнать, нашел ли кто-нибудь что-то новое!

Но я понял, что это двойной вход в cron. У меня была запись в / etc / crontab для запуска всех скриптов в /etc/cron.quarter, и у меня была запись в /etc/cron.d, одновременно вызывающая один и тот же скрипт.

Не совсем так же интеллектуально строгий, как отладка второго уровня!