블로그는 나의 힘!
[ Programing ]/OS - Linux2010. 10. 30. 10:47
1. crontab 이란?
  정해둔 명령을 일정 기간 마다 실행 하도록 설정



2. 사용법
> crontab [ -u 사용자 id] 파일
> crontab [ -u 사용자 id] { -r | -l | -e}
   Option
   -e : 설정된 파일을 새롭게 편집
   -d : 등록된 내용을 삭제
   -l  : 현재 등록된 내용 보기


정보 보기 :
> crontab -l
  
설정:
> crontab -e ( 일반 계정으로 사용 하는 crontab )
> vi /etc/crontab  ( root crontab ) 
※ 서버군 시간 동기화는 여기서.
> vi /etc/cron.d ( 환경 설정 crontab )



--------------------------------------------------- 

사용자에게 crontab 명령어 사용 설정 허가
# /etc/cron.allow    여기서 ID 등록
( Open suse linux 는 의미 없음. )

사용자에게 crontab 명령어 사용 제한
# /etc/cron.deny    여기서 ID 등록
( Open suse linux 는 의미 없음. )



--------------------------------------------------- 

실행:
> /etc/rc.d/init.d/crond start
( Open suse linux 는 자동으로 실행되니 의미 없음. )

재실행:
> /etc/rc.d/init.d/crond restart
( Open suse linux 는 자동으로 실행되니 의미 없음. )

종료:
> /etc/rc.d/init.d/crond stop

( Open suse linux 는 자동으로 실행되니 의미 없음. )



--------------------------------------------------- 



등록 내용 설정 : 분 시 일 월 요일 실행 명령 순으로 설정
********************************************************************
   SHELL=/bin/sh
   50 02,14,22 * * * root /usr/sbin/ntpdate 192.xxx.xxx.xxx /sbin/hwclock
    1 0 30 5 * /usr/bin/rsync -avxH --delete /home/BACKUP/home > /dev/null 2>&1 
    40 1 * * 0 /root/bin/perm_set.sh > /dev/null 2>&1
********************************************************************
   필드 1 (50) : 분 ( 0 ~ 59 )
   필드 2 (02, 14, 22): 시 ( 0 ~ 23 )
   필드 3 (*): 일 ( 0 ~ 31 )
   필드 4 (*): 월 ( 1 ~ 12 )
   필드 5 (*): 요일 ( 0 ~ 7 )
   필드 6 (root /user/sbin/ntpdate 192.xxx.xxx.xxx): 명령어 ( 실행 명령어 )
 
   ※ 콤마로 구분한 것 : 연속으로 수행하는 것
        55 7, 15, 23 * * * root /usr/sbin/ntpdate 192.xxx.xxx.xxx /sbin/hwclock
        - 55분 7, 15, 23시에 ntpdate를 수행한다. ( 시간 동기화 )
        
        1 0 30 5 * /usr/bin/rsync -avxH --delete /home/BACKUP/home > /dev/null 2>&1 
        - 5월 30일 00:01에 /home 디렉토리 /home/BACKUP 여기로 백업

        40 1 * * 0 /root/bin/perm_set.sh > /dev/null 2>&1
        - 매주 일요일 1시 40분에 perm_set 구동한다.
          단!!! *.sh 로 구동하는 것에 주의 점은 *.sh 안에 반드시 그 디렉토리 경로를 설정해 주어야 한다.
          ( *.sh에 cd /root/bin/ 위치 경로 작성 )

        */20 * * * * /shell/mrtg
        - 20분 마다 실행. * 디폴트로 할시 1분 마다 실행.
 


! /dev/null 2>&1 의미? !
( 링크 : goguri.tistory.com/entry/Linux-명령어-devnull-21-의미 )



참고 사이트 : http://l2j.co.kr/1410

Posted by Mister_Q