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시.
이렇게 적으면 된다.