최종 수정일 : 2001년 8월 3일
글쓴이 : 윤 일(admin@rootman.org)

HOW-TO using cron

안녕하세요. 루트맨 운영자입니다. 이번 강좌는 너무나도 유용한 cron에 대해서 얘기할려고 합니다.
cron은 윈도우 시스템의 작업 스케줄러와 비슷한 기능을 하는 명령입니다. 보통 정기적으로 백업 파일을 만들 때 많이 사용합니다. 루트맨의 경우 정기적으로 아파치의 로그를 지워주고 홈페이지 파일을 백업해 줄 때 사용하고 있습니다.  

cron 파일이 저장되는 장소
/var/spool/cron/사용자명 ( "/var/spool/cron/crontab/사용자명" 으로 되어 있을 수도 있다)

cron을 사용할 땐 crontab 이라는 명령을 이용해서 설정한다.
crontab의 형식은 다음과 같다.

분(minute)  시(hour)   날(day)   달(month)   요일(dayofweek)   명령(command)
***각항은 space로 구분됩니다***

우선 한가지 예를 보면서 이해합시다.. 뭐니 뭐니 해도 예제를 보고 따라하면 금방 익힐 수 있어요
일단 crontab을 설정하기 위해선 다음과 같이 명령합니다.

#crontab -e

위와 같이 입력하면 vi 편집기가 열릴겁니다..
기본적으로 crontab의 편집기는 vi로 지정되어 있습니다.

/var/spool/cron에 가보면 사용자 이름으로 cron 파일이 있을 것이다.

위의 내용은 일요일 12시마다 /usr/local/apache/htdocs의 내용을 backup.tar라는 파일로 백업을 하라는 것입니다.
앞의 0은 분(minute)을 가리키고 12는 시(hour) 세번째 *는 날(day) 네 번째 *는 달(month)를 지정해 준겁니다..
*는 all을 의미합니다. 그러니까 매일, 매달 일요일 12시에 명령을 실행하라는 얘기지요...
분(minute), 시(hour), 요일(dayofweek)도 마찬가지로 *를 적용할 수 있습니다.
기억해 둘건 날짜와 관련된 항은 5개라는 것...

또 tar 라는 명령외에 다름 명령도 추가 해주고 싶을 땐 ";" 로 구분해서 ";" 뒤에 명령을 더 달아 주면 됩니다.
아파치의 로그 기록파일을 매주 월요일 1시에 지워주고 아파치를 restart 시키는 crontab을 만들어 보겠습니다.
위와 마찬가지로 crontab -e를 명령해서 cron 설정 vi 화면으로 넘어 갑니다.

무슨 메시지가 뜨죠... cron 어쩌고 저쩌고... 그럼 제대로 설정된 겁니다.

crontab -r   ---->  crontab에 설정된 것을 삭제해 주고 싶을 때(모두 삭제 됩니다)
crontab -l   ---->  현재 설정되어 있는 crontab을 보고 싶을 때


1일부터 15일 까지로 날짜를 지정하고 싶을 땐 다음과 같이 하이픈을 이용할 수 있다.
0   1   1-15     *   *   [명령]
분, 시, 날, 달, 요일, 모두 적용할 수 있다.

1일과 7일 15일에 cron을 작동시킬 땐 콤마를 이용하면 된다.
0   1  1,7,15    *   *   [명령]
분, 시, 날, 달, 요일, 모두 적용할 수 있다.

매 5일 마다 실행하고 싶을 땐 슬래쉬(/)를 이용한면 된다.
0   1   /5   *   *   [명령]
분, 시, 날, 달, 요일, 모두 적용할 수 있다.
/ 안해줘도 달이 *로 표현되어 있어서 매달 실행된다. 하지만 좋은 습관을 들이기 위해.. 

cron 강좌는 여기서 끝 더 궁금한점이 있으면 게시판에 올려주세요....

 




Copyright(c) 2001, 수퍼유저코리아 All Rights Reserved.
서버구축(운용)상담 : e-mail : webmaster@superuser.co.kr