Skip to content

Cron

특정 작업을 정해진 시간에 주기적이고 반복적으로 실행하기 위한 데몬과 그 설정들.

  • cron시스템에는 시스템에서 기본적으로 사용하는 cron설정이 있으며, 이를 시스템크론이라고 함.
  • cron시스템에는 root나 일반사용자가 자신의 cron설정을 직접하여 사용하는 사용자크론이 있음.

Usage

작업 스케쥴을 설정할때는 다음의 순서로 입력하면 된다. (구분자는 공백 이다)

  1. 분 (Minute): 0-59 값을 가진다.
  2. 시 (Hour): 0-23 값을 가진다.
  3. 일 (Day of month): 1-31 값을 가진다.
  4. 월 (Month): 1-12 값을 가진다.
  5. 요일 (Day of week): 0-7 값을 가진다. 0 또는 7은 모두 일요일이다. 영문 이름을 사용해도 된다.
  6. 명령문

예를 들어, 매주 월요일 오전 5시에 tar를 사용하여 모든 사용자 계정을 백업하고자 한다면:

0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

crontab 작업의 출력(오류 포함)은 crontab 파일이 속한 사용자에게 이메일을 통해 전송된다. 메일 파일 경로는 /var/mail/$USER 이다.

  • * - 모든 값을 뜻합니다.
  • ? - 특정한 값이 없음을 뜻합니다.
  • - - 범위를 뜻합니다. (예) 월요일에서 수요일까지는 MON-WED로 표현
  • , - 특별한 값일 때만 동작 (예) 월,수,금 MON,WED,FRI
  • / - 시작시간 / 단위 (예) 0분부터 매 5분 0/5
  • L - 일에서 사용하면 마지막 일, 요일에서는 마지막 요일(토요일)
  • W - 가장 가까운 평일 (예) 15W는 15일에서 가장 가까운 평일 (월 ~ 금)을 찾음
  • # - 몇째주의 무슨 요일을 표현 (예) 3#2 : 2번째주 수요일

cron에 관한 데몬과 파일들

  • cron데몬파일: /usr/sbin/crond
  • cron데몬의 시작/종료/재시작: /etc/rc.d/init.d/crond start/stop/restart
  • crond 실행확인: ps -ef | grep crond
  • cron설정파일: /etc/crontab
  • 시스템크론 설정디렉토리: /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly
  • 사용자크론 설정파일: /var/spool/cron/* 1
    • crontab -e명령을 사용한 사용자 크론 설정 파일 위치: /var/spool/cron/crontabs/*
  • 사용자크론설정 명령어: /usr/bin/crontab
  • cron실행내용 기록되는 로그파일: /var/log/cron

사용자 스케줄 편집

vim을 사용하여 cron 스케줄을 편집:

$ EDITOR=vim crontab -e

스케줄 확인

현제 설정된 스케줄을 보고 싶으면 아래와 같은 방법으로 확인할 수 있다.

$ crontab -l

Example

$ crontab -e
10 1 * * * rdate -s time.bora.net
## 10 : 실행할 분(0~59)
## 1 : 실행할 시간(1~23)
## * : 실행할 일(1~31 / * 는 매일을 의미)
## * : 실행할 월(1~12 / * 는 매월을 의미)
## * : 실행할 주(1:월요일~7:일요일 / * 는 매주를 의미)
## rdate -s time.bora.net : 실행할 명령어
10 1 * * * rdate -s time.bora.net
의미는 매일 1시 10분에 rdate -s time.bora.net 명령어(시간 업데이트) 를 실행 하라는 cron이 되겠다.
10 1,12,18 * * * rdate -s time.bora.net
위와 같이 설정 할 수도 있는데 이는 1시, 12시, 18시 이런식으로 한 항목이 여러번 설정되어야 할때 사용 할 수 있다.
10 1 1-10 * * rdate -s time.bora.net
1일 부터 10일 까지를 의미 하게 된다.
10 1 1-10/15 * * rdate -s time.bora.net
1일 부터 10일 까지 그리고 15일 을 의미한다.

See also

Favorite site

References


  1. 사용자계정명과 동일한 파일명으로 존재함 

  2. Superuser_linux-cron.pdf