====== cron ======
미리 저장한 작업을 일정 기간마다 실행되게끔 해주는 작업이다. crond라는 데몬과 직접적인 관련이 있다. ''/etc/crontab''을 편집하여 사용한다. crontab 명령어는 ''/usr/bin/crontab''에 위치한다.
===== 형식 =====
다음은 라즈비안에 등록된 crontab 내용 중 일부이다.
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
위에서 볼 수 있듯이 형식은 다음과 같다.
분 | 시간 | 날짜 | 달 | 요일 | 사용자 | 명령
입력할 수 있는 값은 다음과 같다.
^ 분 | 00 ~ 59 |
^ 시간 | 00 ~ 23 |
^ 날짜 | 00 ~ 31 |
^ 달 | 1 ~ 12 |
^ 요일 | 0 ~ 7 (0 = 일요일) |
그 외 다음의 기호들을 사용할 수 있다.
^ %%*%% | everytime |
^ - | 해당 시간 사이 \\ 예) 시간 항목에 1-3 이면 1시에서 3시 사이 |
^ , | 구분 \\ 예) 시간 항목에 1,3 이면 1시, 3시 |
^ / | 뒤에 오는 단위별로 매번 \\ 예) 분에 %%*/2%% 인 경우 2분 단위로 실행 |
===== 사용 예 =====
==== 특정 시간에 서버 종료 ====
다음은 매주 월요일 새벽 1시에 서버를 종료한다.
00 1 * * 1 root shutdown -h now
==== 특정 시간에 스크립트 실행 ====
스크립트를 실행할 수 있는 권한이 있으면 다음과 같이 스크립트를 실행할 수 있다.
0 8 * * * root sh /root/backup.sh
===== 유의 사항 =====
* ''/etc/crontab''의 권한은 644이기 때문에 일반 사용자도 읽을 수 있다. 그러므로 비밀번호가 포함된 명령은 넣지 않거나 crontab의 권한을 변경해준다.
* crontab 내용을 변경하면 crond가 자동으로 reload한다.