OS/Linux

crontab 시간 설정

아르비스 2020. 2. 15. 11:22
0 5 * * * /home/test/test.sh > /home/test/log/test.log 2>/home/test/log/test_2.log

 

위처럼 적으면 매일 5시에 home/test/test.sh 를 실행하라는 말이다.

 

첫 번째 0은 몇 분에 실행할 거냐를 지정해 주는 거다. 0이라고 쓰면 0분에 실행한다. 5라고 실행하면 5분에 실행한다. 혼동하지 말아야 할 것은 ‘5분마다’ 실행하는 게 아니라 5분에 실행한다는 점이다. (*을 적으면 매분, 즉 1분마다 실행하는 게 된다.)

 

두 번째 5는 5시에 실행하라는 거다. 역시 5시간마다 실행하라는 게 아니다. 역시 *을 적으면 매시간마다, 즉 1시간마다 실행하라는 게 된다.

 

세 번째 *은 매일 실행하라는 뜻이 된다. 만약 여기 5를 적으면 5일에 실행하라는 뜻이 된다. 한 달에 한 번 실행하고 싶다면 여기 숫자를 적는다.

 

네 번째 *은 매달 실행하라는 뜻이 된다. 만약 여기 1을 적으면 1월에 실행하라는 뜻이 된다. 1년에 한 번만 실행할 게 아니라면 당연히 *을 적어야 할 거다.

 

다섯 번째 *은 요일에 관한 거다. 0~6 사이의 숫자를 입력한다. 0은 일요일, 6은 토요일이다. 매주 수요일에 실행하고 싶으면 3이라고 적는다.

 

그래서 다섯 개의 숫자 혹은 별을 조합하면 cron이 언제 이 명령을 실행해야 하는지가 나오는 거다. 예를 몇 개 들어 보자.

 

0 5 * * * : 매일 5시 0분에 실행.

5 * * * * : 매시 5분이 될 때마다 실행. 즉, 한 시간 간격으로 실행.

* * * * * : 1분에 한 번씩 실행.

0 5 1 * * : 매달 1일 새벽 5시에 실행.

그럼 5분에 한 번씩 혹은 5시간에 한 번씩 실행하고 싶으면 어떻게 적어야 하는가? 아래처럼 적는다.

 

*/5 * * * * : 5분마다 한 번씩

0 */5 * * * : 5시간마다 한 번씩

물론 저 뒤에 실행할 스크립트 경로를 적어 줘야 한다는 점을 잊으면 안 된다.

 

마지막으로.

 

0 5,11 * * * : 새벽 5시와 밤 11시.

0 5,11 * * 0,3 : 매주 일요일과 수요일 새벽 5시와 밤 11시.

이렇게 적으면 된다.