사용자 도구


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한다.