BLOG ARTICLE cron | 1 ARTICLE FOUND

  1. 2008.12.09 [Linux] cron & crontab 설정

Dev Note/System 2008.12.09 11:45

* cron
   - 일정시간마다 시스템에서 자동으로 실행시키는 데몬(Windows의 작업스케줄러와 비슷한 기능)
   - 정기적 작업을 할때 많이 사용
   - cron을 사용할때 crontab이라는 명령을 이용해서 실행한다. (/etc/crontab)
  - 각각의 사용자가 등록한 crontab은 /var/spool/cron/[사용자명]에 저장된다.

* cron 데몬의 시작 & 종료
   - /etc/rc.d/init.d/crond [start/restart/stop]

* crontab
   - 지정된 시간에 다른 프로그램을 실행하면서 연속적으로 실행하는 프로그램
   - 유사한 명령으로는 at 명령어가 있다.

* crontab와 at 명령의 차이점
   - crontab 명령은 일정한 간격으로 계속해서 명령을 실행한다. 하지만 at 명령은 지정된 명령을 한번만 수행.

* crontab 옵션
   -l : 현재 crontab에 의해 설정 된 내용을 출력
   -e : crontab의 내용을 작성하거나 수정
   -r : crontab의 내용을 삭제
   -u : root 권한자가 해당 사용자의 crontab 파일을 다룰때 사용

예) crontab -e -u luffy

* crontab의 작업형식
   [분] [시] [일] [달(월)] [요일] [명령어]
   - 분 : 분을 의미 (0 ~ 59까지 사용)
   - 시 : 시를 의미 (0 ~ 23까지 사용)
   - 일 : 날짜를 의미 (1 ~ 31까지 사용)
   - 달(월) : 달(월)을 의미 (1 ~ 12까지 사용)
   - 요일 : 요일을 의미 (0 ~ 7까지 사용, 0과 7은 일요일을 나타냄)
   - 명령어 : 실행 할 명령어
   구분자는 space로 한다.
   위 형식에서 시간을 나타내는 각 필드에서는 와일드 카드 '*'를 사용할 수 있고, 각각의 요일을 구분할 때는 ','를 사용하고 연일 을 나타낼때는 '-'를 사용한다.
   즉, 월요일과 수요일은 '1,3', 월요일부터 금요일까지는 '1-5'로 표시할 수 있다.
   예) 월요일부터 금요일까지 12시에 /tmp/start라는 스크립트를 실행
      0 12 * * 1-5 /tmp/start
   예) 1월부터 10월까지 2개월마다 매일 12시에 /tmp/start라는 스크립트를 실행
      0 12 1 1-10/2 * /tmp/start (/2는 2달마다라는 표시. 만약 5일마다 작업을 수행시키고 싶으면 0 1 /5 * * [명령]
   예) 월, 수, 금 오전 4시에 /tmp/start라는 스크립트를 실행
      0 4 * * 1,3,5 /tmp/start

* cron 사용자 제한
   - /etc/cron.allow(허가목록)과 /etc/cron.deny(거부목록)을 참조하게 된다.
   - /etc/cron.allow 만 존재하는 경우 : cron.allow 파일에 등록된 사용자만 사용가능
   - /etc/cron.deny만 존재하는 경우 : 기본적으로 모든 사용자가 사용가능하고 cron.deny에 등록된 사용자만 사용불가
   - 두 파일이 모두 없을 경우 : 모든 사용자가 사용가능
   - 두 파일이 모두 있는 경우 : cron.deny 내용을 무시하고 cron.allow 파일에 등록 된 사용자만 사용가능


신고

티스토리 툴바