cronjob은 시스템 시간이나 자체 시간 경과에 따라 달라지나요? 시스템 시간인 경우 시스템 시간을 수동으로 변경하면 cronjob이 그에 따라 새로 설정된 시간을 준수합니까?
답변1
예를 들어, 시계를 12시 4분에서 12시 6분으로 이동하고 작업이 12시 5분에 예약된 경우 해당 작업은아니요달리기.
매일 12시 5분에 작업을 실행해야 하는 경우또는그런 다음 가능한 빨리(전원을 켠 후 또는 시스템 시계 이후) 매분마다(또는 허용되는 경우 더 긴 간격으로) 작업을 실행하고 스크립트가 상태 파일을 기반으로 하루 중 마지막 실행인지 확인하도록 합니다. 상태 파일이 존재하고 최신인 경우 스크립트는 즉시 종료되어야 합니다(즉, 12:05 또는 그 이후 가장 빠른 기회에 실행됨). 그렇지 않은 경우 상태 파일을 설정하고 나머지 스크립트를 실행하여 시계가 다음 날 12시 5분에 도달할 때까지 추가 호출이 아무 작업도 수행되지 않도록 합니다.
특히 작업 시간이 더 오래 걸리는 경우 먼저 상태 파일을 업데이트한 다음 계속 실행하는 것이 중요합니다. 그렇지 않으면 12:06 확인에서 업데이트된 상태를 찾지 못하고 다른 작업을 병렬로 실행하기 시작합니다.
답변2
cron
시스템 시계를 사용하여 매분마다 확인하십시오. 시스템 시계를 변경하려면 man
페이지에서 다음 발췌문이 유용할 수 있습니다.
일광 절약 시간이 시작되거나 끝나는 경우와 같이 시계가 3시간 미만으로 변경되는 경우에는 특별한 주의가 필요합니다. 시간을 앞당기면 건너뛴 시간 동안 실행된 작업은 변경 후 즉시 실행됩니다. 반대로, 시간이 3시간 미만으로 이동하면 중복된 시간에 해당하는 작업은 다시 실행되지 않습니다.