티스토리 뷰


cron .crontab

주기적으로 반복되는 일을 자동적으로 실행될수 있도록 설정해놓는 것을 cron이라고 한다.(데몬)

이 일정관리 파일에는 명령이 수행 될 시간. 수행할 로그인명 등이 포함,

시스템에 따라 /usr/lib/crontab , /etc/crontab 파일이 있으며 crontab 디렉토리가 따로 존재할수도 있음

 

옵션



crontab -e                 crontab 파일을 수정하거나, 새로 만든다.
crontab -l                  crontab 파일 리스트를 보여준다.
crontab -r(or -d)         crontab 파일을 삭제한다.
crontab -v           crontab 파일의 최근 수정한 정보를 보여준다. (This option is only available on a few systems.)


/etc/crontab

시간별, 일별, 주별, 월별 로 호출하는 디렉토리를 보여줌   아래는 내용

 

분 | 시간 | 날짜 | 달 | 요일 | 사용자 | 명령 | 
*       *       *      *      *        (*)       command to be executed
-        -       -       -      -
|        |       |       |      |
|        |       |       |      +----- day of week (0 - 6) (Sunday=0)
|        |       |       +------- month (1 - 12)
|        |       +--------- day of month (1 - 31)
|        +----------- hour (0 - 23)
+------------- min (0 - 59)

 

- /etc/cron.hourly : 매시마다 수행될 내용들 수행함.
- /etc/cron.daily : 매일 1회 수행될 내용들 수행함.
- /etc/cron.weekly : 매주 1회 수행될 내용들 수행함.
- /etc/cron.monthly : 매월 1회 수행될 내용들 수행함.

- /var/spool/cron :디렉토리에 있는 파일들을 읽어들임

- /var/log/cron   :cron 로그파일에 실행기록

 

의미를 파악해보면...

분,시,일,월,요일,권한,실행 명령 순으로 되어있음...

/etc/cron.hourly/  디렉토리에 실행이 가능한 파일을 넣어 놓는다면 매시간 01 분마다 실행될 것입니다.

다른 행도 마찬가지다. 단3번째 행에서 요일 부분에 요일 부분에 써있는 0은 일요일을 의미

0~6 까지 일요일~토요일 을 의미 하게 되는것입니다.

각각의 필드는 그 시간들을 무시하고자 할때 *로 표시하게 된다. 그리고 하나의  필드에 중복된 내용을 기재하고자 하면 콤마(,)로 구분하면 된다. 연속된 내용을
기록하고자 하면 하이픈(-)을 이용하여 기간을 나타낸다. 또한 슬래쉬(/)를 사용한 내용도 있는데 이는 시간의 경우에 23-7/2라면 23시부터 07시까지 매 2시간마다
라는 의미를 가지고 있다. 시간필드에서 */2라면 매 2시간마다라고 해석하면 된다.

 

cron 데몬의 실행과 종료

- 실행 : /etc/rc.d/init.d/crond start

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

- cron데몬파일 : /usr/sbin/crond
- cron데몬의 시작/종료/재시작 : /etc/rc.d/init.d/crond start/stop/restart
- crond 실행확인 : 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
*참고 : atd에 의한 수행내역은 /var/log/messages에 기록됨

 

cron 시스템 실행 흐름도

전원on -> init데몬 -> crond 데몬 실행 -> crontab파일 읽음,cron 로그파일에 실행기록

 

--퍼옴---수퍼유저 코리아

 

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

- '*'표시는 해당 필드의 모든 시간을 의미한다.
- 3,5,7와 같이 콤마(,)로 구분하여 여러 시간대를 지정할 수 있다.
- 2-10와 같이 하이픈(-)으로 시간 범위도 지정할 수 있다.
- 2-10/3와 같이 하이픈(-)으로 시간 범위를 슬래쉬(/)로 시간 간격을 지정할 수 있다(2~10시까
지 3시간 간격으로. 즉, 3, 6, 9시를 의미함).
crontab이란 예약된 작업을 실행하는 파일이다.

[출처] cron.crontab|작성자 나는최고다


댓글