[UNIX] cron 데몬을 이용한 스케쥴 작업
IT 2008/10/16 11:19 |* cron 데몬을 이용한 스케쥴작업하기
시스템 관리용 스케쥴러 프로그램으로서, 시스템 로그 파일을 정리하고 지운다거나 DB백업 등의 일을 해 줍니다.
cron 데몬은 총7개의 필드로 구성되어 있다.
+-----------------------------------------------+
| 분 | 시간 | 날짜 | 달 | 요일 | 사용자 | 명령 |
+-----------------------------------------------+
, : 여러시간을 나타내고자 할 때 ex) 0,6,12 : 0시,6시,12시
/ : 시간 간격을 나타내고자 할 때 ex) 0-12/2 : 0시부터 12시까지에서 2시간 마다
- : 연속된 시간을 나타내고자 할 때 ex) 1-5 : 1시부터 5시까지
* : 시간을 무시할 때 ex) 0-23 와 * 표기는 같은 뜻
crontab -e : 스케쥴작업에 내용 편집하기
crontab -l : 스케쥴작업 리스트 확인하기
crontab -r : 스케쥴작업 리스트 지우기
* cron 데몬 다시시작하기
service crond restart
* cron 로그 확인하기
/var/log/cron에 지금까지의 cron데몬이 작업한 내용이 남는다.
cron데몬이 작동을 제대로 하지 않을 경우 여기를 참고하면된다.
* cron 데몬 사용 예
0 */12 * * * root /home/jjeri78/mysql_backup : 매일 12시간 마다 프로그램을 수행
0 3 * * 1-5 root /home/jjeri78/myhome_backup : 월요일부터 금요일까지 매일 오전3시에 프로그램을 수행
* 여러개의 화일을 같은작업 그룹으로 묶기
/etc/crontab 의 내용은 crontab에 등록하지 않아도 자동으로 수행되는 작업이다.
여기서 run-parts는 뒤의 디렉토리안에 있는 실행화일을 모두 실행시키는 프로그램이다.
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
* mysql 백업 쉘스크립트
#!/bin/bash
T=$(echo `date +%Y%m%d%H%M`)
DIR=$(echo /home/jjeri78/backup)
mysqldump -uuserid -puserpass databasename > $DIR/databasename_$T.sql
* crontab에 등록하기
0 3 * * 1-5 root /home/jjeri78/myhome_backup : 월요일부터 금요일까지 매일 오전3시에 프로그램을 수행

댓글을 달아 주세요