WHEREIS

CentOS 6.4에서는 RHEL6 버전부터 사용된 anacron이 채용되어 있다.

이로 인해 RHEL5 버전까지 crontab에 설정되어 있던 run-part부분, 즉 /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/, /etc/cron.monthly/ 의 실행부분이 빠져 있다.

자세한 부분은 anacron을 설명하는 부분에서 확인하도록 하자.


크론이 실행 확인

# ps -ef | grep crond

root      1214     1  0 14:22 ?        00:00:00 crond


리눅스에서는 일반적으로 cron 데몬이 주기적인 작업 실행을 처리한다. 

cron이 시작될 때부터 끝날 때까지 계속 실행되며 실행되며 cron 설정 파일은 cron table을 줄여서 crontab이라 부른다.


/var/spool/cron

/etc/cron.d

/etc/crontab


cron은 시작할 때 모든 곳에 저장된 설정파일들을 읽어 메모리에 저장해두고 휴지 상태에 들어간다. 그리고 매분마다 활성화돼 변경된 crontab 파일들이 있는지 확인하고, 변경된 경우 설정을 다시 읽어 저장하고, 그 시간에 실행해야 할 작업이 있는지 확인하고 실행시킨 후 다시 휴지 상태로 들어간다.


시스템 개별 사용자를 위한 crontab 파일 위치이며 일반적으로 root 계정용 하나와 계정 사용자당 1개의 파일을 가진다.

파일명은 사용자의 계정명이며 cron은 이 이름을 바탕으로 각 설정 파일에 지정된 작업들을 실행할 때 사용할 UID를 결정한다. 이 곳에 있는 설정파일들은 crontab 명령으로 관리한다.


관리자가 직접 지정한 작업들을 설정한다.

임의의 사용자 권한으로 실행할 수 있다.

시스템 관련 작업들을 등록해 사용한다.


# vi /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/


# For details see man 4 crontabs



# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name command to be executed

예)

# date time sync

0 5 * * * root  /usr/bin/rdate -s time.bora.net && /sbin/hwclock -w


소프트웨어 패키지를 설치할 때 필요한 주기적인 작업을 등록하는 공간으로 사용한다.

임의의 사용자 권한으로 실행할 수 있다.


/etc/cron.deny와 /etc/cron.allow 설정파일에서 사용자에 대한 crontab 제어를 관리할 수 있다.


이 허용파일이 있는 경우 파일 내 지정된 사용자만 crontab을 등록할 수 있다.

지정되지 않은 사용자들은 crontab 명령을 실행할 수 없다.


허용파일이 없는 경우에는 이 거부 파일이 사용된다.

파일 내 지정된 사람을 제외한 나머지 사용자에게 crontab 명령 실행 권한이 주어진다.


두 파일 모두 존재하지 않는 경우에는 대다수 시스템에서 루트 관리자만이다.

데비안과 우분투 배포판은 이런 경우 모든 사용자에게 실행 권한을 준다.


crontab 명령어를 사용하여 작성하는 cron은 개별사용자용 크론이다.

/var/spool/cron 아래에 저장된다.

crontab [ -u 사용자 id] 파일

crontab [-u 사용자 id] { -l | -r | -e}


crontab -l : 예약된 작업리스트

crontab -e : 예약된 작업 수정

crontab -r : 예약된 작업 삭제

crontab -u 사용자명 : 루트관리자는 해당 사용자의 crontab 파일을 보거나 삭제, 편집가능

"분,시,일,월,요일,[사용자명] 실행명령" 순으로 설정


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

필  드    의  미    범  위

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

첫번째    분        0-59

두번째    시        0-23

세번째    일        0-31

네번째    월        1-12

다섯번째  요일      0-7 (0 또는 7=일요일, 1=월, 2=화,...)

여섯번째  사용자명  /etc/crontab, /etc/cron.d 에 저장될 경우 필요

일곱번째  작업명령  실행할 명령을 한줄로 쓴다.

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


예)

45,5 10 * * 1-5 root /usr/bin/rdate -s time.bora.net && clock -w

월요일~금요일에 매월 매일 10시 5분과 45분에 루트의 권한으로 시간동기화 명령어를 실행한다.


* : 범위 내 모든 경우

숫자 : 정확히 일치하는 그 시각, 날짜

- 기호로 연결된 두 숫자 : 두 숫자 사이에 포함된 범위를 뜻함

콤마(,)로 구분돼 나열된 숫자 : 나열된 숫자 중 일치하는 경우를 뜻함



출처 : http://webdir.tistory.com/174

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band
loading