Home crontab 알아보기
Post
Cancel

crontab 알아보기

Github Actions를 이용한 잔디심기 대쉬보드 만들기를 하면서 cron: ‘0 1 * * *‘라는 코드의 이해를 위해 cron 표현식을 잠깐 공부했었습니다. cron 표현식을 키워드로 검색하면 대부분 7자리 표현식이 나오는데, 거기서 연도를 생략해 6자리로 많이 사용하는 것 같습니다.

‘그런데 이 코드는 왜 5자리지…?’

알고 보니 리눅스에서 크론 표현식을 사용할 때는 초도 생략하여 분, 시, 일, 월, 요일의 다섯 자리를 사용한다는 것입니다. 아마 ubuntu에서 빌드되었기 때문인 것 같다는 것으로 결론을 내리고 마쳤었는데, crontab이라는 키워드를 얼마 전 처음 알게 되어 포스팅을 하게 되었습니다.

crontab이란 리눅스에서 주기적으로 어떤 작업을 예약해 실행할 수 있는 cron을 동작하도록 하는 파일입니다.

1. 옵션

crontab 옵션은 다음과 같습니다.

  • crontab -e

crontab 파일을 편집합니다.

  • crontab -l

crontab 파일 내용을 확인합니다.

  • crontab -r

crontab의 내용을 삭제합니다.

2. 시간 설정

시간을 설정하는 5자리는 각각 다음을 의미합니다.

  • m : 분

  • h : 시

  • dom : 일

  • mon : 월

  • dow : 요일

이제 어떤 방식으로 cron 표현식을 작성할 수 있는지 알아봅시다.

(1) X월 X일 X시 X분 마다

5 * * * *와 같이 적으면 매시 5분마다 작업이 수행됩니다. 10 2 * * *로 적으면 매일 2시 10분, 0 19 20 * *로 적으면 매월 20일 19시 정각에 수행되는 것입니다. 다만, 요일을 뜻하는 마지막 자리는 0(일요일)을 기준으로 1은 월요일, 2는 화요일, 3은 수요일, 4는 목요일, 5는 금요일, 6은 일요일입니다. 표현식으로 작성한 시간마다 작업이 수행된다고 생각하면 됩니다

(2) X분에 한 번씩

위의 경우처럼 분 자리에 정수를 입력하면 X분마다 작업이 수행되는데, 매시 5분, 10분, 15분, … 과 같이 5분마다 작업을 수행하고 싶을 수도 있습니다. 3번과 같이 쉼표를 사용해서 적을 수도 있지만 이 경우에는 더 좋은 표현 방법이 있습니다.

*/5 * * * *와 같이 사용하면 5분에 한 번씩 작업이 수행되며, 0 */5 * * *와 같이 사용하면 5시간에 한 번씩 작업이 수행됩니다.

(3) X월 X일 X시 X분, X월 X일 X시 Y분 마다

5,10 * * * *와 같이 쉼표를 사용하면 매시 5분, 매시 10분마다 작업을 수행할 수 있습니다. 분 뿐만 아니라 다른 자리에도 해당됩니다.

https://cloud-oky.tistory.com/320https://wlsvud84.tistory.com/32를 참고하였습니다.

This post is licensed under CC BY 4.0 by the author.