Если NTP запускается в 10:59:55 и фиксирует время на 11:00:13, запускает ли хрон задачи 11:00:00 и *: 00: 00 или они пропускаются?
В качестве альтернативы, если NTP запускается в 11:00:00 и устанавливает время на 10:59:48, выполняются ли эти задачи дважды?
Если они пропущены, какими методами можно это исправить?
А как насчет других планировщиков (windows и т. Д.)?
-Адам
если вы запустите демон NTP, у вас не будет этой проблемы, он ускорит / замедлит ваши часы, чтобы они синхронизировались с течением времени, а не прыгали.
Это зависит от того, что вы подразумеваете под NTP. Если вы запускаете демон синхронизации времени NTP (ntpd) с разумной конфигурацией, то время никогда не будет скачкообразно. Демон постоянно переводит системное время в сторону реального времени. Он не «запускается» через определенные промежутки времени: он запрашивает свои источники времени через определенные промежутки времени, просто чтобы определить, на сколько нужно увеличить время. Вы никогда не увидите пропущенного времени, и ваше время не будет двигаться в обратном направлении.
Однако время будет скачкообразно, если вы выполняете синхронизацию другими способами. Например, если вы используете задание cron для запуска ntpdate
или ntpd -q
(чего вам не следует делать, если у вас нет очень веской причины и вы не понимаете возможных ужасных последствий), тогда ваше системное время может мгновенно и сильно измениться при каждом запуске. Время также может прыгать при первом запуске ntpd, в зависимости от того, как вы его настроили.
По поводу Cron:
Если точное время, в которое должно было выполняться задание cron, не наступает (пропускается) из-за скачка времени, то оно просто не запускается. Он будет работать со следующим интервалом, на который он запланирован.
Если точное время, в которое должно было выполняться задание cron, повторяется дважды (время возвращается назад), то оно будет выполняться оба раза.
Чтобы решить проблему cron, запустите ntpd как службу / демон, таким образом гарантируя, что ваше время никогда не прыгнет. Если вы вручную перескочите время, вам придется проверить все свои задания cron, чтобы определить, что не выполнялось (или будет выполняться дважды), и вручную вмешаться.
Конечно, лучшее решение - решить проблему времени. Проблема cron - это просто симптом гораздо более серьезной проблемы с временным переходом, которая может вызывать все виды проблем, помимо cron (ведение журнала, аудит, SELinux и т. Д.)
Насколько я понимаю, запланированные задания не следует пропускать или запускать дважды.
Cron использует список событий для планирования, поэтому, если время пропускается вперед, cron просто увидит, что задание не было выполнено вовремя, и запустит его во время следующего цикла пробуждения. Если время переместится назад, задание будет удалено из списка событий, и cron не увидит его как требующего повторного запуска.
Как упоминал Тьофрас, ntpd будет постепенно настраивать ваши часы, используя дрейф, а не резкий скачок, поэтому вы обычно не должны видеть скачки времени, если вы вручную не измените системные часы.
Я видел, как задания Backup Exec в Windows срабатывают, если время меняется. Особенно им не нравится, когда время переводится на час назад.
Как уже упоминалось, запуск ntpd предотвратит эту проблему, но если у вас возникнут проблемы из-за пропуска времени, вы можете использовать anacron. Он предназначен для использования, когда компьютер не работает круглосуточно, и для выполнения заданий как можно скорее, но я не понимаю, почему он не работает в описанной вами ситуации.