2014-10-14 2 views
0

매년 저조한 날에 한두 가지 크론 작업 (충분하지 않은 경우)을 실행해야한다는 요구 사항이 있습니다. 스크립트는 매년 아래의시기에 실행되어야합니다. 1) 두 번째 일요일 행 2:00 am. 2) 11 월 첫 번째 일요일 오전 2시.일광 절약 시간제로 cron 작업을 실행하도록 예약

나는 매월 일요일마다 달리기를 할 수있다.이 특정 날을 위해 일할 수있는 방법이 있을까?

+0

나는 그의 명령 "에서"사용합니다 "한 분 DST를 삭제하기 전에" 에 http : //unix.stackexchange.com/questions/97882/why-do-we-need-at-command-in-linux – muztanger

답변

0

아니요, crontab에는 이에 대한 구문이 없습니다.

할 일은 매주 일요일에 작업이 실행되도록 예약하고, 호출 된 명령을 현재 일광 절약 시간제가 아닌 ("절약"이 아닌) 즉시 전환하는 스크립트로 만듭니다.

여기서는 해당 시스템이 전환 중에 가동되고 있다고 가정합니다. 전원 장애가 발생하거나 누군가 주말에 시스템을 종료하면 나중에 놓친 작업을 실행하도록 준비해야 할 수 있습니다. (anacron이 작업을 수행하지만 사용하지는 않았습니다.)

0

일광 절약 시간 전환은 시간이 일 때 발생합니다. 기준 시간은입니다.

3 월에는 1시 59 분 59 초에서 3시를 틱합니다. 로컬 시계는 실제로 2시에 도착하지 않습니다. 따라서이 시간을 예약하는 것은 실제로 불가능합니다. 실제 순간이 아닌 초반에 실행되도록 예약 할 수 있습니다.

마찬가지로 11 월에는 시계가 1:59:59에서 1:00으로 바뀝니다. 2 시가 될 때까지 1 시간 동안 전환이 끝났습니다. 하지만 1시 59 분 59 초로 예약하면 번 두 번이 실행됩니다.

위와 (그리고 귀하의 질문은) 북미 DST 규칙을 전제로합니다. 다른 시간대는 다른 날짜와 시간으로 전환되거나 전혀 전환되지 않습니다.

도 참조하십시오. the dst tag wiki.

+0

지금은 북미 DST 만 고려하고 있습니다. – apretth

+0

시계를 되돌릴 때 두 번 실행되지 않을 것이라고 생각합니다. 'man 8 cron'에서 : "... 반대로 시간을 뒤로 조정하면 같은 작업을 두 번 실행하는 것을 피할 수 있습니다.". – Binarus

0

북미 지역에서는 3 월 둘째 주 일요일과 11 월 1 일 일요일에 DST 변경이 발생합니다. 다음 크론 항목이 speficic 날짜에 실행됩니다 :

이 1:59에서 일어나는 둘째 주 일요일 월의

59 1월 8일에서 14일까지 3 0 에코 "한 분 DST를 설정하기 전에"

이 발생 오전 1시 59분에서 1 일 일요일 11 월

59 1월 1일부터 7일까지 (11) 0 에코

+0

내 실수는 일요일 또는 1 월 7 일에 실행됩니다. –

+0

59 1 1-7 11 * test $ (date + % u) -eq 0 && echo "DST를 지우기 전에 1 분" –