Ubuntu에서 cron daemon을 활용하는 방법을 알아 본다.


우선 cron daemon은 사용자/시스템이 등록한 job을 (비)주기적으로 실행시키는 시스템서비스이다.
여기서 사용자가 등록한 job은 bash스크립트를 포함하는 실행프로그램을 의미한다.

job에 대한 지정과 함께 이것을 언제(어떤주기로) 실행시켜야 하는지를 알려주어야한다.
실행주기에 대해서 다음과 같은 포맷으로 표현한다.


<minite> <hour> <day-of-month> <month> <day-of-week>


각 필드의 범위는 상식적인 수준에서 예상할 수 있다. 다만 <day-of-week>는 0-7의 범위를 갖는데,
0(또는 7)은 일요일, 6은 토요일이다.


사용예를 보면,
1 * * * *
는 매시 1분마다 job을 실행하는 것이다.

cron daemon은 1분마다 한번씩 깨어나서 실행할 job(패턴매치)이 있는지를 보고 있으면 실행한다.


2 23 * * *
는 밤 11시 2분마다 실행할 job이 있다는 것이다. 즉 24시간마다 한번씩 실행된다.


* 12 30 * *
는 매달 30일 12시 부터 12시 59분까지 60회를 실행한다.


0 0 1 12 *
는 12월1일 자정에 시행함을 의미한다.


숫자와 '*'이외에도 범위를 표현하기 위해 '-'을 혼합해서 사용할 수 있다.
예를 들면,

20-30 23 * * *
20-30,40 23 * * *


위에서 사용해온 '*'의 정확한 의미는 '그 필드가 가질수 있는 모든값'이다.


다음과 같은 쉘명령문이 실행되도록 등록시켜 보자

echo "current-time : $(date)"


$ crontab -e
# vi에디터가 열리면 다음 라인을 넣는다.
* 13 * * * echo "current-time : $(date)" >> /tmp/a.txt

1시부터 2시사이에 매분마다의 메시지가 '/tmp/a.txt'에 추가된다.


~/test) cat /tmp/a.txt
current-time : 2014. 09. 25. (목) 13:51:01 KST
current-time : 2014. 09. 25. (목) 13:52:01 KST


cron-job을 취소하기 위해서는 다음과 같이 r옵션을 준다.
$ crontab -r