crontab 사용법

shell | 2011/08/08 15:01 | zziuni

crontab

유닉스계열의 시스템에서 batch job을 돌릴때 사용한다. 어떤 작업을 하는 shell script 작성한 후에 crontab에 일정을 등록하면 정해진 시간에 자동으로 실행한다. mac command를 기준으로 작성한다. 서버 로그를 정리하는 작업이나, 시간이 오래걸리는 통계/정산 작업등을 등록할때도 사용할 수 있다. 간단한 명령어지만, 자주 사용하지 않는 기능이다 보니 쓸려면 생각이 안난다. 회사의 svn 서버를 windows server 에서 mac mini로 옮기면서 svn dump를 매일 떠야 하는데, srontab 이 생각이 안나서 정리해봤다.

현재 crontab에 등록된 리스트 보기

먼저 뭔가 돌고 있는지를 확인하자. 신규서버나 로컬이 아니면 이미 등록되어있는 '작업'이 있을 수 있다. 옵션 -l 를 통해 현재 등록되어있는 리스트 확인이 가능하다. 등록된 내용이 없으면 아무것도 나오지 않는다.

> crontab -l
0 4 * * * /respo/cron.sh

chrontab등록

옵션 -e 를 주면 crontab를 수정할 수 있게 vi 가 실행되는데, 등록된 것이 없으면 신규 파일이 뜬다. 작성하면 된다.

> crontab -e
crontab: no crontab for stonerain - using an empty one

작성하기

먼저 인자를 알아야 한다. crontab은 공백문자를 구분자로 해서 한 라인에 6개의 인자를 적어주면 끝이다. 인자는 순서대로 아래와 같다. 매주 월 수 금 새벽 4시에.. 라는 식의 스케줄을 아래 인자로 표현해 주면 된다.

  Arg 1 : minute ( 0 – 59 )
  Arg 2 : hour ( 0 – 23 )
  Arg 3 : day of month ( 1 – 31 )
  Arg 4 : month ( 1 – 12 )
  Arg 5 : day of week ( 0 – 6 ) 0 : 일요일
  Arg 6 : 명령어 or 실행파일 path

샘플

  • 매일 새벽 4시 실행 : 0 4 * * * /repository/cron.sh
  • 매주 수,토요일에 오전 8:20분 실행 : 20 8 * * 3,6 /repository/cron.sh
  • 매월 25일 0시에 실행 : 0 0 25 * * /repository/cron.sh
  • 1월 6월 1일 자정 실행 : 0 0 1 1,8 * /repository/cron.sh
2011/08/08 15:01 2011/08/08 15:01
Trackback address :: http://zziuni.pe.kr/zziuni/trackback/572

Comments List

Write a comment.

[로그인][오픈아이디란?]