본문 바로가기

StoreHouse/Server

RedHat Cron 과 Crontab 파일을 이용하여 작업을 자동화

당신도 대부분의 리눅스 사용자와 마찬가지로, 반복적으로 어떤 특정한 시간에 어떤 작업을 시작하도록 예약할 필요를 느낄 것이다. 그러한 작업은 분 단위로 반복되는 것일 수도 있고 1년에 한번 반복되는 것일 수도 있다. 이러한 예약 기능은 ``cron'' 기능을 이용하여 구현할 수 있다.

리눅스의 cron 기능은 다른 유닉스와 거의 같게 구현되어 있다. 하지만, 레드햇은 작업의 스케쥴을 잡는데 있어서 다른 리눅스 배포판과는 약간 다른 방식을 채택하고 있다. 다른 배포판과 마찬가지로 스케쥴링 정보는 시스템내의 (``/etc/'' 디렉토리의) ``crontab'' 파일에 다음과 같은 형식으로 저장된다:

분 시 일 월 연 명령


각 항목은 정수로 (예를 들어, 1월부터 12월을 나타내기 위하여 1부터 12사이의 숫자를 사용) 지정할 수도 있고 몇개의 항목은 와일드카드 문자로 인식되는 ``*'' 문자로 (예를 들어, 월에 해당하는 항목에 * 표시가 있으면 매월 지정된 날짜, 지정된 시간에 명령이 실행된다는 것을 의미한다) 표시할 수도 있다. 몇가지 예를 들어보면:

# 매년 6월 15일 오후 4시 30분에 시스템 로그 파일을 메일로 발송한다
30 16 15 06 * for x in /var/log/*; do cat ${x} | mail postmaster; done
# 관리자에게 계절이 바뀌었음을 자정에 알려준다
00 00 20 04 * echo 'Woohoo, spring is here!'
00 00 20 06 * echo 'Yeah, summer has arrived, time to hit the beach!'
00 00 20 10 * echo 'Fall has arrived. Get those jackets out. :-('
00 00 20 12 * echo 'Time for 5 months of misery. ;-('


표준출력 (즉, 터미널) 으로 출력이 나오는 명령, 예를 들어 위의 예에서 사용한 ``echo'' 명령, 의 출력은 ``루트'' 계정에게 메일로 전송된다. 이렇게 메일이 가지 않도록 하려면 다음의 예처럼 출력을 널 장치 (null device) 로 파이프 연결하면 된다:

00 06 * * * echo 'I bug the system administrator daily at 6:00am!' >/dev/null


표준인 ``crontab'' 외에도 레드햇은 몇개의 디렉토리를 추가하였다:

/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/


이름에서 알 수 있듯이, 이들 디렉토리의 아무 곳에나 실행가능한 파일을 둘 수 있으며, 이들 파일은 각기 매시, 매일, 매주 단위로 실행된다. 이 방식은 빈번한 작업을 지정할 때에는 시간을 절약해줄 수 있다; 그냥 실행가능한 스크립트나 프로그램을 적절한 디렉토리에 가져다 놓고 (또는 다른 곳에 있는 파일에 대하여 심볼릭 링크를 걸어놓고) 그 일은 신경쓰지 않아도 된다.

'StoreHouse > Server' 카테고리의 다른 글

RedHat sendmail 의 access 파일 사용법  (0) 2004.12.10
RedHat wget 사용법  (0) 2004.12.10
RedHat 시스템에서 로그파일 관리  (0) 2004.12.10
RedHat 리눅스 스타트 팁  (0) 2004.12.10
RedHat 포트스캔툴 NMAP 사용법  (0) 2004.12.10