본문 바로가기
Server&OS/Linux

crontab 설정

by 백룡화검 2009. 7. 29.
웹서버를 운영하고 있는 솔라리스 2.7 시스템에서 매주 일요일 04:00시마다 access_ log와 error_log를 백업받아 특정 폴더에 저장하려고 한다. 원래의 access_log, error_log는 백업받은 후 사이즈 0인 파일로 만들고, 로그파일의 제목은 access_log_YYYYMMDD, error_log_YYYYMMDD로 하여 디렉토리 /var/adm/httpd/에 저장한다. 위 작업을 루트권한으로 crontab 기능을 이용하여 수행하시오. 아파치 웹서버의 위치는 /usr/local/apache이다.

예) 2002년 6월 30일 일요일 04:00에 access_log, error_log 파일을 백업
(이 때 로그파일 내용은 2002년 6월 23일 04:00 ~ 2002년 6월 30일 04:00까지의 로그)

- /usr/local/apache/logs/access_log 파일을 /var/adm/httpd/access_log_20020630로 백업하고
/usr/local/apache/logs/access_log 파일을 사이즈 0으로 만듬
- error_log도 access_log와 마찬가지

▶ Cron
  • 일정 시간마다 시스템에서 자동으로 실행시키는 데몬
  • /etc/rc.d/init.d/crond start (Cron 실행)
  • /etc/rc.d/init.d/crond stop (Cron 종료)
  • /etc/crontab (Cron 설정 파일)
  • crontab -e : 설정된 파일을 수정.     crontab -d : 등록된 내용 삭제,     crontab -l : 현재 등록된 내용 보기
  • 모든 엔트리 필드는 공백으로 구분, 한줄당 하나의 명령 사용(두 줄로 나누어서 표시 안됨)
  • #으로 시작하는 줄은 실행이 안됨(주석).   * 표시는 해당 필드의 모든 시간을 의미.
  • 1, 3, 5와 같이 콤마로 구분하여 여러 시간대 지정.   2-5와 같이 하이픈(-)으로 시간 범위 지정.
  • 2-10/3과 같이 하이픈(-)으로 시간 범위를 슬래쉬(/)로 시간 간격을 지정 (예는 3시간 간격)

▶ Shell Script
 

  • 쉘에서 사용할 수 있는 명령어들의 조합을 모아서 만든 batch 파일이다.
  • 스크립트의 가장 첫줄은 #!로 시작하며 다음에는 script를 실행할 인터프리터와 그 실행 옵션을 설정한다.
  • sheel script에서는 #!/bin/sh, #!/bin/bash 등과 같이 쉘의 절대 경로를 지정해준다.
  • #!만 써주면 #!/bin/sh로 인식한다. (default)

/var/adm/httpd로 이동해서, 쉘스크립트 파일을 만든다.


access_log와 error_log파일을 백업 받은 후 파일의 사이즈를 0으로 만드는 과정이다.
쉘스크립트 파일에 관한 내용은 뒤에 명시되어 있다.


파일을 만든 후 권한 설정을 해준다.


crontab을 이용하여 설정하는 과정이다. -e는 수정하는 옵션이다.


위의 cron형식대로 하면 매주 일요일 4시로 설정하면 위와 같이 표시할 수 있고,
6번째 항목에 backlog.sh스크립트를 명시해준다.


마지막으로, 아파치를 재실행한다. finish!
출처 : www.sis.or.kr

'Server&OS > Linux' 카테고리의 다른 글

리눅스 명령어 : CP  (0) 2009.08.20
리눅스 서버에서 IP변경하기  (0) 2009.08.03
tar 명령어  (0) 2009.07.10
rsync로 서버 백업하기  (0) 2008.10.16
웹서버 부하 분산을 위한 허접한 로드밸런싱  (0) 2008.10.16