크론은 서머 타임 +1 시간 변경을 처리합니까?


16

지난 주말에 시간을 02:00에서 03:00으로 변경해야했습니다.

질문 : 02:30에 cronjob이 있으면 어떻게됩니까?

crond는 예약을위한 매우 오래된 솔루션입니다. 아마도이를 처리해야하지만 방법을 모릅니다.

답변:


18

아마 당신의 cron 구현에 달려 있지만 매뉴얼에서 인기있는 Vixie cron 상태는 다음과 같습니다.

그런 다음 cron은 1 분마다 깨우며 저장된 모든 crontab을 검사하고 각 명령이 현재 분에서 실행되는지 확인합니다.

일광 절약 시간의 시작과 끝에서와 같이 시계를 3 시간 미만으로 변경하면 특별히 고려해야 할 사항이 있습니다. 시간이 앞으로 이동 한 경우 건너 뛴 시간에 실행 된 작업은 변경 직후에 실행됩니다. 반대로, 시간이 3 시간 미만으로 뒤로 이동 한 경우 반복 된 시간에 해당되는 작업은 다시 실행되지 않습니다.

특정 시간에 실행되는 작업 (@hourly로 지정되지 않았거나 시간 또는 분 지정자에 '*'이 지정되지 않은 작업) 만 영향을받습니다. 와일드 카드로 지정된 작업은 새로운 시간을 기준으로 즉시 실행됩니다.

DST 변경이 3 시간 미만이므로 프로그램은 오전 3시 직후에 실행됩니다.

이것이 Vixie cron 특정 행동인지 확실하지 않습니다 .PDP-11이 80 년대에도 어떻게 작동했는지 기억합니다.하지만 확실하지 않습니다.


2
와, 80 년대의 지식-모자를 벗다!
Isaac Isaac

경험 법칙 : 1 년에 한 번 해당 시간 범위의 크론이 작동하지 않습니다. 일년에 한 번 크론이 두 번 달립니다. 추론 : 항상 그런 것은 아닙니다. 관련 : 현지 시간대 사용을 중지하십시오!
tedder42

@ tedder42 참조를 제공하십시오, 귀하의 주장은 문서와 cron의 실제 행동과 모순됩니다.
Anthon


이 일화 사례는 오전 2시와 오전 3시를 기준으로하며 오후 2시 30 분에 대한 질문과 관련이 없습니다. 당신의 언급은 흥미롭고 (오래된) 행동일지도 모르지만 그것은 내 경험과 맞지 않습니다. 시간대없이 서버를 실행하면 자체 문제가 있습니다.
Anthon

2

가장 좋은 해결책은 하드웨어 시계를 UTC, (협정 세계시), AKA GMT 또는 Zulu Time으로 설정하여 컴퓨터를 실행하고 일광 절약 시간제를 허용하도록 현지 시간대를 설정하여 시간 표시 방식 만 변경하는 것입니다. 인계 할 시간.

SUSE Linux 및 기타 대부분의 경우 하드웨어 시계 시스템-> 환경-> 시계-> HWCLOCK 이 -u 플래그와 함께 UTC로 설정되고 표준 시간대가 시스템의 현지 시간을 자동으로 표시하는 위치로 설정된 경우 당신을 위해 DST 수정.

여기에는 여러 가지 장점이 있습니다.

  • DST 변경을 위해 시계를 수동으로 다시 조정할 필요가 없습니다.
  • CRON 탭은 UTC 시간에 저장 및 실행됩니다
  • 로그와 같은 파일이 DST가 끝나기 전에 01:30에 작성되고 DST가 끝나고 01:20에 또 다른 파일이 작성된 경우 파일 타임 스탬프는 UTC이므로 파일이 다른 파일보다 "최신"상태가됩니다. 표시 시간에 현재 시간대를 기준으로 표시되도록 번역되었습니다.

자세한 내용 man hwclock은 터미널에 입력하십시오 .


2
작은 이쑤시개. UTC는 "Universal Time Constant"가 아닙니다. UTC 수단은 국제 표준시
fpmurphy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.