Live Brilliant

crontab 명령어 본문

개발은 핵찜이야/리눅스

crontab 명령어

주인정 2012. 4. 13. 17:33
 

crontab

- 시스템의 주기적인 cron 작업의 설정, 수정등을 하는 명령어
- 시스템에서 가장 중요한 데몬중의 하나인 crond 와 직접적인 관련이 있는 명령어
- crond 데몬은 /etc/rc.d/init.d/crond 의 스크립트에 의해 시작, 종료, 재시작될수 있음

- crond 데몬
- /etc/crontab 파일
- /etc/rc.d/init.d/crond 스크립트
- /var/spool/cron 디렉토리내의 크론설정파일들

명령어 위치 : /usr/bin/crontab
사용형식 : crontab [ -u 사용자id ] 파일
crontab [ -u 사용자id ] { -l | -r | -e }

cat /etc/crontab
매시 1회 자동실행하기 위한 시스템 크론 설정

01 * * * * root run-parts /etc/cron.hourly
- 매일 매시 01분마다 /etc/cron.hourly 디렉토리내에 존재하는 파일들을 실행


매일 1회 자동실행하기 위한 시스템 크론설정

02 4 * * * root run-parts /etc/cron.daily
- 매일 새벽 4시 02분마다 /etc/cron.daily 디렉토리내에 존재하는 파일들을 실행

매주 1회 자동실행하기 위한 시스템 크론설정

22 4 * * 0 root run-parts /etc/cron.weekly
- 매주 일요일 새벽 4시 22분마다 /etc/cron.weekly 디렉토리내에 존재하는 파일들을 실행

매월 1회 자동실행하기 위한 시스템 크론설정

42 4 1 * * root run-parts /etc/cron.monthly
->매월 1일 새벽 4시 42분마다 /etc/cron.monthly 디렉토리내에 존재하는 파일들을 실행


* root 이외의 사용자에게 crontab 명령어를 이용할 수 있게 하는 방법

- /etc/cron.allow 파일에 사용자의 id를 등록


* 일반사용자의 crontab 명령어사용을 제안하고자 한다면
- /etc/cron.deny 파일에 사용자의 id 를 등록


* cron 설정하는 방법

40 3 * * * root /home/mysql/mysql_backup.sh

맨 앞의 40은 40분을 의미함 (분을 의미:0~59)

그 뒤의 3은 03시를 의미함 (시를 의미:0~23)

그 뒤의 * 은 매일을 의미함 (일을 의미:1~31)

그 뒤의 * 은 매월을 의미함 (월을 의미:1~12)

그 뒤의 * 은 매주를 의미함(요일을 의미 1:월요일~7:일요일)

그 뒤의 root /home/mysql/mysql_backup.sh 는 root 계정으로 mysql_backup.sh을 실행하라는

의미

* 문자 : 각 필드에 해당하는 모든 숫자를 의미

- 문자 : 각 필드자리에 하이픈 문자가 올수 있음

ex) 일 필드자리에 11-15 (11,12,13,14,15일을 의미)

,문자 : 각 필드자리에 콤마문자가 올수 있음

ex) 일 필드자리에 1,11,21 (1일,11일 21일을 의미)


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

crontab 형식

[분][시][일][월][요일]

분 = 0~59
시 = 0~23
일 = 0~31
요일 = 0~7 (0,7=일 / 1=월 / 2=화 ... 6=토)

* 는 모든 시간대를 의미
1,3,5 와 같은 콤마(,)로 구분하여 여러 시간대를 지정하는 것은 가능
1-10 과 같이 아이픈(-)으로 시간 범위 지정 가능
2-10/3 과 같이 하이픈(-)으로 시간 범위를 지정한 후 슬래쉬(/)로 시간 간격 지정 가능,
앞의 예는 2시부터 10시까지 3시간 간격 = 3,6,9 시를 의미함


30 4,12 * * *
매일 새벽 4시30분, 낮12시 30분에 실행

40 1 * * 0
매주 일요일 새벽 1시 40분에 실행

0 4-6 * * *
매일 오전 4,5,6시

5 */2 * * *
매일 2시간 간격으로 5분대 : 2시5분, 4시5분, 6시5분

15 1 1 * * *
매월 1일 1시 15분

30 3 1 1,3,6,9
1월1일 3시 30분, 3월1일 3시 30분, 6월1일 3시 30분, 9월1일 3시 30분 실행

----------------------------------
cron 실행 오류시
/var/log/cron 검토

 

'개발은 핵찜이야 > 리눅스' 카테고리의 다른 글

리눅스 tar 분할 압축 방법  (0) 2012.04.13
서버 접속자 파악  (0) 2012.04.13
wait_timeout 문제  (0) 2012.04.13
서버.. MySql 로그 남기려면..  (0) 2012.04.13
파일 용량 특정 위치 찾기 awk  (0) 2012.04.13
Comments