[UNIX] Crontab

Program/Unix 2007.02.09 03:06

OS : AIX

---------------------------------------------------------
crontab 사용법
---------------------------------------------------------
* UNIX 환경에서 주기적으로 수행되는 스케쥴링 작업을 등록시 사용

* 주의/참고사항
  - 크론을 실행시키려는 유저로 로긴(또는 su)한 후 수행.
  - crontab화일은 반드시 실행모드로 되어있어야 함
  - 크론테이블에 작업을 등록한 후 해당 시간에 작업이 정상 작동되었는가 확인해 볼것!!!
    만약, cron이 정상적으로 수행이 안될시는 다음과 같이 restart시킴
    > kill -9 {cron PID}
    > /usr/sbin/cron &
  - .profile에 등록된 정보를 cronjob 프로그램은 참조할 수 없음!!!
     크론테이블에 등록하여 프로그램을 실행할 경우 만약 해당 프로그램에서 .profile에 등록된 정보를
     참조한다면 실행 시 이 정보를 읽어오지 못하므로 반드시 쉘 스크립트를
     작성하여 참조하는 모든 정보를 추가
  - cron 실행 오류시
    . /var/adm/cron/log 검토
    . .profile의 정보를 참조해서 발생하는 오류인지 확인.
    . 프로그램 실행 권한이 있는지 확인. 없을경우 권한을 할당
  - stdout으로 화면에 출력되는 모든 로그가 남길시
    '>'를 쓰면 매번 새로 기록하고(overwrite),
    '>>'를 쓰면 기존 파일에 append가 됨

* 사용법  
  - crontab 등록/편집/삭제
    > crontab -e
    > (등록/편집/삭제 완료후 "wq"로 exit, vi 상의 명령어 사용하면 됨)
  - cron tab 목록 보기
    > crontab -l

* crontab 설정 방법
  -  cronjob은 공백이나 탭키로 분리되는 6개의 필드가 있으며 내용은 아래와 같음.
1번필드 : 시간(분)
2번필드 : 시간(시간)
3번필드 : 일자
4번필드 : 월
5번필드 : 요일(0:일요일, 1:월요일, 2:화요일....)
6번필드 : 실행할 명령이나 스크립트
(5번필드 이후의 모든 문자는 공백이나 탭키와 상관없이 모두 6번필드로 인식함)
 
  - [예제]매월매일 모든요일 06:00시에 lgcron.sh를 실행
    . crontab -e를 통해 아래의 명령을 크론테이블에 추가시킴.
      00 06 * * 0-6 /usr/local/bin/lgcron.sh >> /dev/null
      (작성한 스크립트가 /usr/local/bin/lgcron.sh일경우)

* 기타 cron 등록 방법
   > vi /tmp/cron.tmp 해서 직접 등록/편집한 다음 저장
   > crontab /tmp/cron.tmp 명령을 실행함.
     
---------------------------------------------------------
crontab 예제
---------------------------------------------------------
* 1분간격으로 lgcron.sh를 실행
  ">> /dev/null" 이것은 cron중 발생하는 로그를 버림
  * * * * * /usr/local/bin/lgcron.sh >> /dev/null

* 10분간격으로 lgcron.sh를 실행
  ">> /logs/cronlog.log" 이것은 cron중 발생 로그를 cronlog.log라는 파일에 append 시킴
  10,20,30,40,50,60 * * * * /usr/local/bin/lgcron.sh >> /logs/cronlog.log

 

http://blog.naver.com/sonmap?Redirect=Log&logNo=80001754322

'Program > Unix' 카테고리의 다른 글

[Unix] Send Mail  (0) 2007.07.28
UNIX 파일검색 Tip  (0) 2007.07.16
[UNIX] Crontab  (0) 2007.02.09
Posted by pino93
TAG