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
리눅스 명령어 grep, egrep, fgrep (0) | 2014.02.13 |
---|---|
/var/log/message에 찍히는 rsync 로그 제외하기 (3) | 2014.01.28 |
CRONTAB error(user uid 변경 후 유의) (0) | 2014.01.27 |
[Linux] cp 명령시 -f (강제 덮어쓰기) 명령이 먹지 않는 경우 (0) | 2014.01.21 |
su 로 암호없이 다른 계정에 로그인하도록 설정하기 (0) | 2014.01.13 |