linux | cron 시스템 활용하기
페이지 정보
작성자 100K5 작성일12-10-21 09:13 조회38,997회 댓글0건관련링크
본문
[참고] 아래의 자료는 www.superuser.co.kr 의 강좌에서 발취 한 것입니다.
ㅇ cron 시스템이란?
- 특정 작업을 정해진 시간에 주기적이고 반복적으로 실행하기위한 데몬과 그 설정들
- cron 시스템에는 시스템에서 기본적으로 사용하는 cron 설정이 있으며, 이를 시스템 크론 이라고 함
- cron 시스템에는 root나 일반사용자가 자신의 cron 설정을 직접하여 사용하는 사용자 크론이 있음
ㅇ cron에 관한 데몬과 파일들
- cron 데몬파일 : /usr/sbin/crond
- cron 메논의 시작/종료/재시작 : /etc/rc.d/init.d/crond start/stop/restart
- cron 실행확인 : ps -ef | grep crond
- cron 설정파일 : /etc/crontab
- 시스템 크론 설정 디렉토리 :
/etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly
- 사용자 크론 설정 파일 : /var/spool/cron/* (사용자 계정명과 동일한 파일명으로 존재함)
- 사용자 크론 설정 명령어 : /usr/bin/crontab
- cron 실행내용 기록되는 로그 파일 : /var/log/cron
ㅇ cron 시스템 실행 흐름도
- [전원on] -> [init 데몬] -> [crond 데몬실행] ->
------------------------------------------------------------------------------------
| /etc/crontab 파일을 읽어들임(아래 내용 참고)
| - /etc/cron.hourly : 매시마다 수행될 내용들 수행함.
| - /etc/cron.daily : 매일 1회 수행될 내용들 수행함.
| - /etc/cron.weekly : 매주 1회 수행될 내용들 수행함.
| - /etc/cron.monthly : 매월 1회 수행될 내용들 수행함.
|
| /var/spool/cron 데렉토리에 있는 파일들을 읽어들임
| - 각 사용자들의 개별 cron 설정파일들을 읽어 들여 설정된 내용을 각 주기에 맞게 수행함.
------------------------------------------------------------------------------------
->
------------------------------------------------------------------------------------
| cron 에 의해 수행 되지 못한 작업 anacron 에 의해 수행 시도함
------------------------------------------------------------------------------------
->
------------------------------------------------------------------------------------
| cron 로그파일에 실행기록 : /var/log/cron
| - crond 에 의해 수행된 수행내용 기록
| - anacron 에 의해 수행된 수행내용 기록
| * atd 에 의한 수행기록은 /var/log/messages 에 기록
------------------------------------------------------------------------------------
ㅇ 시스템 cron 설정의 예(/etc/crontab 파일의 일 부분)
[root@edu anacron]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
[root@edu anacron]#
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
[root@edu anacron]#
ㅇ 사용자 cron 설정의 예(root의 cron 설정 예)
[root@edu anacron]# crontab -l
00 01 * * * su - root /usr/bin/rdate -s time.bora.net && /sbin/hwclock -w
00 03 * * * su - root '/root/backup.sh' >& /dev/null
00 08 * * * su - root '/root/check_of_system.sh' > /root/COS_result
[root@edu anacron]#
00 01 * * * su - root /usr/bin/rdate -s time.bora.net && /sbin/hwclock -w
00 03 * * * su - root '/root/backup.sh' >& /dev/null
00 08 * * * su - root '/root/check_of_system.sh' > /root/COS_result
[root@edu anacron]#
ㅇ 각 필드의 의미
00 08 * * * su - root '/root/check_of_system.sh' > /root/COS_result
필드번호 : 의미
첫번째 필드 : 분(minute)을 의미. 0,1,2,3,,,,59분까지를 각각 설정할 수 있음.
두번째 필드 : 시(hour)를 의미. 0,1,2,3,,,,23시까지를 각각 설정할 수 있음.
세번째 필드 : 일(day)을 의미. 1,2,3,,,,31일까지를 각각 설정할 수 있음.
네번째 필드 : 월(month)을 의미. 1,2,3,,,,12월까지를 각각 설정할 수 있음.
다섯번째 필드 : 요일(weekday)을 의미. 0,1,2,3,,,,7요일까지를 각각 설정할 수 있음.
(0과 7은 일요일, 1:월요일, 2:화요일, 3:수요일, 4:목요일, 5:금요일, 6:토요일을 각각 의미함.)
(0과 7은 일요일, 1:월요일, 2:화요일, 3:수요일, 4:목요일, 5:금요일, 6:토요일을 각각 의미함.)
여섯번째 필드 : 실행권한과 실행될 내용을 각각 의미함.
참고1 : * 기호 : 각 필드자리에 * 기호가 오면 해당 필드의 모든 값을 의미함.
- 두번째 필드에 *가 오면 매시, 세번째 필드의 *는 매일, 네번째 필드의 *는 매월을 각각 의미함.
참고2 : - 기호 : 그 사이의 모든 값을 의미함.
예) 두번째 필드의 “5-9”는 5시,6시,7시,8시,9시를 의미함.
예) 세번째 필드에 “1-5”는 1일,2일,3일,4일,5일을 의미함.
참고3 : ,(콤마)기호 : 지정한 모든 값을 의미함.(불규칙적인 값 지정시 사용)
예) 두번째 필드에 “1,3,4,7,8”는 1시,3시,4시,7시,8시를 의미함.
예) 세번째 필드에 “1,5,20”는 1일, 5일, 20일을 의미함.
- 두번째 필드에 *가 오면 매시, 세번째 필드의 *는 매일, 네번째 필드의 *는 매월을 각각 의미함.
참고2 : - 기호 : 그 사이의 모든 값을 의미함.
예) 두번째 필드의 “5-9”는 5시,6시,7시,8시,9시를 의미함.
예) 세번째 필드에 “1-5”는 1일,2일,3일,4일,5일을 의미함.
참고3 : ,(콤마)기호 : 지정한 모든 값을 의미함.(불규칙적인 값 지정시 사용)
예) 두번째 필드에 “1,3,4,7,8”는 1시,3시,4시,7시,8시를 의미함.
예) 세번째 필드에 “1,5,20”는 1일, 5일, 20일을 의미함.
댓글목록
등록된 댓글이 없습니다.