Development /Unix.Linux

주기적 작업 수행을 위한 배치 등록 파일 crontab

해피마루 2018. 8. 16. 10:22
728x90
반응형

<<  주기적 작업 수행을 위한 배치 등록 파일 crontab  >>

 

1. crontab 실행 관련

 

1) crontab 실행 파일 

 

  - 데몬명 : crond

 

  - 위치 : /etc/rc.d/init.d/

 

 

2) crontab 시작|종료|재시작

 

   /etc/rc.d/init.d/crond start|stop|restart

 

 

반응형

 

3) crontab 실행 확인

 

   ps -ef|grep crond

 

 

4) crontab 명령 사용 권한 등록

 

   /etc/cron.allow 에 crontab 명령 사용 가능한 계정 등록

 

   /etc/cron.deny 에 사용 제한할 계정 등록

 

 

5) 파일 생성 내용

 

   /user/spool/cron/contabs 폴더에 계정이름으로 생성됨

 

   crontab 관련 작업 로그는 /var/log/cron에 기록됨

 

 

2. 배치 등록 형식

 

 

1) 시간 설정 + 실행 명령

 

  : 6자리 형식으로 ' 분 시 일 월 요일 명령 ' 형태로 되어 있음

 

   형태)  * * * * * 실행명령(경로를 포함한 실행할 shell 파일명)

 

   예제) 10 13 * * * /app/temp/work_count.sh  >  /dev/null 2>&1

 

         --> 매월, 매일, 오후 1시 10분에 work_count.sh 실행 

 

 

  a) 첫번째자리 : 분, 0~59 

 

     예제) 00 (정각)

           

           */15 ( 15분마다)  

 

           15,45 ( 매 시간의 15분, 45분에 실행)

 

 

  b) 두번째자리 : 시, 0~23 

 

     예제) *  ( 매 시간 수행)

 

           05 ( 5시에 실행)

 

           */1 ( 1시간 간격으로 실행)

 

           03-23 (오전 3시부터 밤 11시까지 실행) 

 

 

  c) 세번째자리 : 일, 0~31 

 

     예제) *  ( 매일 수행)

 

           01 ( 1일 수행)

 

           05-15 ( 5일부터 15일 수행)

 

           05-15,16-17 ( 5일부터 15일 수행, 16일과 17일 수행) 

 

 

  d) 네번째자리 : 월, 1~12 

 

     예제) *  ( 매월 수행)

 

           01 ( 1월 수행)

 

           02-11 ( 2월부터 11월까지 수행)

 

 

  e) 다섯번째자리 : 요일, 0~7 ( 0 또는 7은 일요일, 1은 월, 2은 화요일 등 )

 

     예제) *  ( 매요일 수행)

 

           0 ( 일요일 수행) 

 

           7 ( 일요일 수행)

 

           0,6 ( 일요일, 토요일 수행) 

 

           0,7 ( 일요일, 토요일 수행)

 

           1-6 ( 월요일~토요일 수행, 일요일은 미수행)

 

           1-2, 5-6 ( 월, 화, 금, 토요일 수행)

 

 

  f) 여섯번째자리 : 명령 및 실행 파일 설정 

 

     예제) /app/temp/log_start.sh   >  /dev/null 2>&1

 

     예제) /app/temp/log_start.sh >> /app/space/delete_$(date + \%Y\%m\%d).log

          --> date_년월일날짜.log파일 생성하여 sh파일에서 설정해 놓은 로그, echo 등의 문구 등을 저장

 

2) 시간 설정시 특수 문자

 

   => 예제는 위에 1) 참고 

 

   *   모든 시간 

 

   /   시간의 간격 표시

 

   -   시간의 범위

 

   ,   다중 시간대 설정

 

 

 

3) 명령 및 파일실행시 설정

 

  > /dev/null       리눅스 시스템에서 블랙홀 상태로 버린다는 의미

 

  > /dev/null 2>&1  

 

     --> 파일식별자 개념의 1은 표준출력, 2는 표준에러, &은 이전 사용된 1을 가리키는 

         포인터로 재지향되어 실행 결과 및 에러를 버린다는 의미임

 

  >> 파일명    명령 처리에 대한 결과나 에러 메시지 등을 지정 파일명으로 저장함

    예제)  예제) /app/temp/log_start.sh >> /app/space/delete_$(date + \%Y\%m\%d).log

 

 

3. crontab 옵션

 

1) 내용 보기  crontab -l

 

2) 특정 계정의 작업 스케줄 보기(계정명은 크론탭 파일명 개념과 같음)

   

   crontab -l -u 계정명    

   예제) crontab -l -u user05

  

3) 수정  crontab -e 

4) 삭제   crontab -r

 

4. crontab 기본 정보

   a) 주석처리는 #

   b) 한 줄 명령만 가능

   c) 기본설정으로 vi 에디터 사용 (사용 에디터는 변경 가능)

728x90
반응형