'자료실/리눅스'에 해당되는 글 1건

  1. 2015.12.01 crontab 리눅스 작업스케쥴러
자료실/리눅스2015. 12. 1. 11:21

<<<<내용>>>>  참고자료 ㅎㅎ

옵션
 

crontab -l   (현재 예약되어 있는 작업 목록)

crontab -e  (새로운 작업 입력,수정,삭제 = 에디트모드)

 

cron 설정 후 crond 데몬을 재실행할 필요는 없이 crontab -e 로 설정한 후 빠져나오면 바로 적용됨.
 

 

 

형식
 

[분]  [시]  [일]  [월]  [요일]  명령어

위와 같은 형식을 취함.

 

분 = 0~59

시 = 0~23

일 = 0~31

월 = 1~12

요일 = 0~7  (0,7=일 / 1=월 / 2=화 / 3=수 / 4=목 / 5=금 / 6=토)

 

'*' 은 해당 필드의 모든 시간을 의미.
1,3,5 와 같이 콤마(,)로 구분하여 여러 시간대를 지정하는 것이 가능.
1-10 과 같이 하이픈(-)으로 시간 범위 지정 가능.
2-10/3 과 같이 하이픈(-)으로 시간 범위를 지정한 후 슬래쉬(/)로 시간 간격 지정가능. 앞의 예는 2시부터 10시까지 3시간 간격=3,6,9 시를 의미함
 

 

 

주의사항
모든 엔트리 필드는 공백으로 구분
한 줄당 하나의 명령만 가능
주석문은 #
 

 

 

예제
30 4,12 * * * /usr/bin/cmd  (매일 새벽4시 30분, 낮12시 30분에 /usr/bin/cmd 를 실행)

 

40 1 * * 0  /home/bloodguy/db.sh   (매주 일요일 새벽 1시 40분에 /home/bloodguy/db.sh 를 실행)

 

0 4-6 * * * 명령어  (매일 오전 4,5,6 시)

5 */2 * * * 명령어  (매일 2시간 간격으로 5분대 = 2시 5분, 4시 5분, 6시 5분 ... )

15 1 1 * *  명령어  (매월 1일 1시 15분)

30 3 1 1,3,6,9 명령어 (1월 1일 3시 30분, 3월 1일 3시 30분, 6월 1일 3시 30분, 9월 1일 3시 30분)

 

 


crontab 등록/편집/삭제

$ crontab -e

등록/편집/삭제시 vi 명령어를 사용하면 된다.


cron tab 목록 보기

$ crontab -l


cronjob은 공백이나 탭키로 분리되는 6개의 필드가 있으며 내용은 아래와 같음.

1번필드 : 시간(분)
2번필드 : 시간(시간)
3번필드 : 일자
4번필드 : 월
5번필드 : 요일(0:일요일, 1:월요일, 2:화요일....)
6번필드 : 실행할 명령이나 스크립트
(5번필드 이후의 모든 문자는 공백이나 탭키와 상관없이 모두 6번필드로 인식함)


cron 실행 오류시

/var/adm/cron/log 검토
.profile의 정보를 참조해서 발생하는 오류인지 확인.
프로그램 실행 권한이 있는지 확인. 없을경우 권한을 할당


stdout으로 화면에 출력되는 모든 로그를 남길 때.

'>'를 쓰면 매번 새로 기록(overwrite),
'>>'를 쓰면 기존 파일에 append가 됨


crontab 예제
crontab -e를 통해 아래의 명령을 크론테이블에 추가시킴.

 

매월매일 모든요일 06:00시에 /usr/local/bin/test.sh를 실행

    00 06 * * 0-6 /usr/local/bin/test.sh >> /dev/null

">> /dev/null"는 cron중 발생하는 로그를 버리도록 지정


1분간격으로 /usr/local/bin/test.sh를 실행

    * * * * * /usr/local/bin/test.sh >> /dev/null

 

10분간격으로 /usr/local/bin/test.sh를 실행

    10,20,30,40,50,60 * * * * /usr/local/bin/test.sh >> /logs/test.log

">> /logs/test.log"는 cron 실행중 발생한 로그를 test.log 파일에 append 시킴

Posted by MUZI77