얕고넓은지식/Computer knowledge

crontab을 설정해 보자~!

쪽마 2015. 12. 27. 12:03

crontab 크론탭이 뭔가요?


쉽게말해서 주어진 일정에 따라 주기적으로 

명령을 실행해주는 기능이라고 보면됩니다


01// cron deamon이 돌고 있는지 확인한다.
02ps -ef | grep cron
03 
04// cron deamon kill
05kill -9 "pid of cron"
06 
07// deamon 재실행
08/usr/sbin/cron
09 
10// crontab 명령어 위치
11/usr/bin/crontab
12 
13// 기본사용법
14crontab { -l | -r | -e }


crontab -r <= crontab을 제거하고싶다면?


-l : 다음과 같은 터미널 명령을 입력하여 활성 crontab 항목의 목록을 볼 수 있다 





crontab 형식


 형식은 "분 시 일 월 요일  실행명령" 순으로 설정 하게 됨

01------    --------  ---------------------------------------------------
02필  드      의  미     범  위
03------    --------  ---------------------------------------------------
04첫번째      분         0-59
05두번째      시         0-23
06세번째      일         0-31
07네번째      월         1-12
08다섯번째    요일       0-7 (0 또는 7=일요일, 1=월, 2=화,...)
09여섯번째    명령어     실행할 명령을 한줄로 쓴다.
10------    --------  ---------------------------------------------------


한줄당 하나의 명령문 (두줄로 나눠서 표시할 수 없음) 
# 으로 시작 하는 줄은 실행 하지 않는다.
모든 엔트리 필드는 공백으로 구분된다.

명령줄에서 crontab -e 명령을 입력하면 vi 에디터가 나온다. (환경변수 EDITOR에 따라 다른 에디터를가 사용될수있음.) 

01$ crontab -e
02 
03# /home 디렉토리를 /BACKUP/home 으로 백업해둠
04# 30분, 새벽 4시와 낮 12시, 모든 일, 모든 월, 모든 요일
0530 4,12 * * *  /usr/bin/rsync -avxH --delete /home /BACKUP/home > /dev/null 2>&1
06 
07 
08# 파일/디렉토리 퍼미션 설정
09# 40분, 새벽 1시, 매주 일요일
1040 1    * * 0  /root/bin/perm_set.sh   > /dev/null 2>&1
명령문 맨뒤에  > /dev/null  2>&1 의 의미 
지정한 명령어 처리 결과와 발생할지 모르는 에러메시지를 출력하지 않고 모두 버린다는(/dev/null)는  뜻입니다. 만약 결과와 에러를 파일로 저장하려면 /dev/null 대신 파일명을 적어주면 됨.








crontab 시간설정


형식은 "분 시 일 월 요일  실행명령" 순으로 설정 하게 되긴하는데...샘플을 통해서 확인해보자..



예)

20  2     *  *  6  명령어 => 매주 토요일 새벽 2:20

0  4-6   *  *  *  명령어 => 매일 오후 4,5,6시

5  */2 *  *  * 명령어 => 매일 2시간간격으로 5분대에

15  1   1  *  *  명령어 => 매월 1일 새벽 1:15

30  0   1  1,7  *  명령어 => 1,7월 1일 새벽 0:30



10 2 * * * /app11/minsang/APP/ldap/run.sh > /app11/minsang/APP/ldap/cron_error.log
55 13 * * * /run.sh > /mail_cron_error.log
0,30 8-19 * * * /sendAdmin.sh > /cron_admin_error.log 


반응형