■ CRON
→ 같은 작업을 주기적으로 반복할수 있도록 해준다.
보통 /etc/rc.d/init.d/crond 데몬에 의해 실행된다.
설정은 /usr/bin/crontab 명령어를 사용한다.
♠ 관련명령어 및 파일
1.crontab
▶ cron작업을 설정하는 명령이다. 실행시키면 기본vi편집기가 실행된다.
▶ option
-l : 현재 crontab 에 의해 설정된 내용을 출력한다.
-e : crontab 의 내용을 작성하거나 수정한다.
-r : crontab 의 내용을 삭제한다.
-u : root권한자가 해당사용자의 crontab 파일을 다룰때 사용한다.
▶ 예제
[root@linux root]#crontab -l
→ 작업목록을 보여준다.
[root@linux root]#crontab -e -u bluetree
→ bluetree 사용자의 crontab 을 작성하거나 수정한다.
[root@linux root]#crontab aaa
→ aaa 란 파일을 crontab 으로 사용한다.
aaa 에는 이미 crontab 형식에 맞에 입력되어 있어야한다.
▶ crontab 의 작업형식
→ 5개의 날짜필드와 1개의 명령필드로 구성되어있다.
MM HH DD mm d command
MM : 분을 의미한다 ( 0 ~ 59까지 사용)
HH : 시를 의미한다. ( 0 ~ 23 까지 사용)
DD : 날짜를 의미한다 ( 1 ~ 31까지 사용)
mm : 달을 의미한다.( 1 ~ 12까지 사용)
d : 요일을 의미한다.( 0 ~ 7 까지 사용, 0 과 7은 일요일을 나타낸다)
command : 실행할 명령을 입력한다.
※ 참고
위 형식에서 시간을 나타내는 각 필드에서 와일드 카드 '*'를 사용할수 있고
각각의 요일을 구분할 때 ',' 를 사용하고 연일을 나타낼때는 '-'를 사용한다.
즉 월요일과 수요일은 '1,3' 월요일부터 금요일까지는 '1-5' 로 표시할수있다
2./etc/crontab
→ 시스템이 정기적인 작업이 수행될수 있도록 기본적으로 설정되어있는 파일이다.
3./var/spool/cron 디렉토리
→ 각각의 사용자가 등록한 crontab은 이 디렉토리아래에 각 사용자이름으로 저장된다.
♠ crontab 내용 설정예
0 12 * * 1-5 /home/bluetree/start
→ 월요일부터 금요일까지 /home/bluetree/start 란 스크립트를 실행시킨다.
0 12 1 1-12/2 * /home/bluetree/babo
→ 1월부터 12월까지 2개월마다 /home/blutree/babo 란 화일을 실행시킨다.
0 4 * * 1,3,5 cat /root/notice | mail -s "notice" bluetree75@naver.com
→ 월,수,금 오전 4시에 notice 라는 문서의 내용을 메일로 발송한다.
♠ cron 사용자 제한
※ /etc/cron.allow (허가목록) 과 /etc/cron.deny(거부목록) 을 참조하게된다.
1./etc/cron.deny 만 존재하는경우
→ 기본적으로 모든사용자가 사용가능하고 cron.deny 에 등록된 사용자만
사용불가능하다.
2./etc/cron.allow 만 존재하는 경우
→ cron.allow 파일에 등록된 사용자만 사용가능하다.
3. 두 파일 모두 없을경우
→ 모든 사용자가가능하다
4. 두 파일 모두 있을경우
→ cron.deny 내용을 무시하고 cron.allow 명기된 사용자만 사용가능하다
(출처 : 'LINUX 스케쥴링 CRON' - 네이버 지식iN)