Menu Close

Simple editor for cron schedule (우리가 알지 못했던 크론탭 디테일)

Simple editor for cron schedule

(우리가 알지 못했던 크론탭 디테일)

 

지금까지 별 생각없이 크론탭을 사용중이었는데, 아래와 같이 크론탭을 특정 시간 간격으로 실행하였을 때 0시가 넘어가면 어떻게 되지? 하는 궁금증이 생겼습니다.

예시가 되는 크론탭 스케쥴은 아래와 같습니다.

30 */9 * * * COMMAND

해당 스케쥴은 지금까지 바왔던 많은 문서들로 인해 매 9시간 간격으로 30분에 COMMAND가 실행된다고 이해할 수 잇습니다.

위 스케쥴은 과연 각각 몇시에 실행이 될까요?

09시 30분 실행 -> 18시 30분 실행 -> 2시 30분 실행 ->  N Time

심플하게 계산한다면 많은분들이 이렇게 생각하실 수 있겟죠?

 

서버에 실제로 위와 같이 잡혀있는 크론 스케쥴이 있어서 최근 실행 시간을 확인해 보았는데 09시 30분에 실행이 되어 있습니다.

이것은 무엇을 의미하는 걸까요? 저의 상상과는 다르게 0시마다 시간이 리셋이 된다는 것입니다.

하지만 구글링을 통해 확인결과 이 사실 또한 틀렸다는 것을 알 수 있었습니다.

 

아래는 크론탭 스케쥴을 계산해주는 에디터 사이트입니다.

CrontabGuru

 

우선 이미지를 봅시다.

crontabguru

 

빨간 박스 안에 있는것이 계산된 스케쥴표 입니다.

뭔가 이상하지 않나요?

둘째줄과 다섯번째줄을 보시면 매 0시 30분마다 실행된다고 되어 있습니다.

즉, 0시에 리셋이 되고, minute에 설정된 30분에 첫번째 스케쥴이 실행이 됩니다.

그 후부터는 설정한대로 매 9시간마다 30분에 실행이 됩니다.

9시간 간격이므로, 9시 30분이 두번째 실행, 9시간뒤인 18시 30분에 세번째 실행이 됩니다.

그리고 그 9시간 뒤에는 이미 0시가 지나가 버리기 때문에 스케쥴이 리셋이 되고 0시 30분에 다시 첫번째 실행이 됩니다.

 

이로써 평소에 깊게 생각하지 못했던 크론 스케쥴이 정확히 어떻게 동작하는지를 알 수 있게 되었습니다.

 

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.