자바기반 스케줄링 프로그래밍(2) - cron 명령어
cron 은 오랬동안 사용되어오며 스케줄링 성능의 입증되어온 유닉스의 툴이다.
cron 명령어는 OS마다 다소의 차이가 있지만 리눅스 기준으로
$crontab -e [엔터]
1 2 3 4 5 사용자아이디 명령어
1: minute (0-59)
2: hour (0-23)
3: day of the month(1-31)
4:
month of the year(1-12) OR jan, feb, mar, apr ...
5: day of the week (0-6)(Sunday=0 or 7) OR sun, mon, tue, wed, thu, fri, sat
순으로 입력하고, 명령어란에 여러분이 만든 어플이나 실행스크립트를 넣어서 사용한다.
예를 들어 아래와 같은 명령이 있다고 하면
#date time sync
0 5 * * * root /usr/bin/rdate -s time.bora.net && /sbin/hwclock -w
매일 , 오전 5시 0분에 시스템의 기준시를 맞추는 동작(/usr/bin/rdate -s time.bora.net && /sbin/hwclock -w)을 하게 된다.
다른 예로는 OS X 에서 아래와 같은 명령은 매1분마다 date.txt 라는 파일에 현재시간을 기록하는 cron 명령이다.
0/1 * * * * date >> /Users/red/date.txt
0/1 같이 다양한 특수문자를 사용할수 있다.
* : 모든 값을 의미.
? : 특정 값을 정하지 않음.
- : 범위를 의미. 예) 0-10이면 0부터 10까지.
, : 값을 추가. 0-10,20-30은 0부터 10까지, 그리고 20부터 30까지.
/ : 증분을 의미. 예) 초에 0/15를 사용하면 15초마다(0, 15, 30, 45) .
L : 마지막을 의미. 날짜에 사용하면 월의 마지막 날을 의미.
31, 30 또는 28(윤달에는 29).
W : 주중(weekday)를 의미. 날짜와 같이 쓰면 그 날짜가 주중인 날을 의미.
로그 파일 백업이나 주기적으로 간단한 동작을 하는 명령이나 프로세스에 적당하다.