강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

리눅스마스터1급: 예약작업 설정하는 cron

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: 예약작업 설정하는 cron




 

 

cron

 

계획된 명령을 실행하는 데몬(Vixie Cron)이다.

 

 

 

대부분의 리눅스 사용자는 반복적으로 어떤 특정한 시간에 어떤 작업을 시작하도록 예약할 필요를 느낄 것이다.

 

 

 

그러한 작업은 분 단위로 반복되는 것일 수도 있고, 1년에 한 번 반복되는 것일 수도 있다.

 

 

 

이러한 예약 기능은 cron 기능을 이용하여 구현할 수 있다.

 

 

 

 

1) 개요

 

 

 

 

cron

 

 

 

 

 

 

2) 설명

 

 

cron 명령은 /etc/rc.d/init.d 또는 /etc/init.dcrond 시작 스크립트 파일에 의해서 실행되어야 한다.

 

 

 

리눅스 배포판에 따라서는 /etc/rc 또는 /etc/rc.local 파일에서 실행되기도 한다.

 

 

 

이 명령은 즉시 리턴하기 때문에 `& 문자를 끝에 사용할 필요는 없다.

 

 

 

 

cron 명령은 crontab 파일로 /var/spool/cron/ 디렉토리 안에 있는 각 사용자의 crontab 파일을 메모리에 올린다.

 

 

 

또한, cron 명령은 시스템 전체의 crontab 파일인 /etc/crontab 파일과 /etc/cron.d 디렉토리 내의 파일들을 찾아 그것을 메모리에 올린다.

 

 

 

 

그리고 cron 명령은 매분마다 저장된 crontab 내용들을 확인하고, 그에 맞는 작업을 수행한다.

 

 

 

프로그램이 실행될 때, 필요에 따라 그 결과를 MAILTO 환경 변수에 지정된 사용자에게 편지로 보내기도 한다.

 

 

 

 

추가로 crond 명령은 cron 스풀 디렉토리가 바뀌었는지도 검사한다(또한 /etc/crontab 파일이나 /etc/cron.d 내의 파일들도 검사한다). 그래서 바뀌었다면 그대로 적용된다.

 

 

 

따라서 비록 그 내용이 바뀌었다고 하더라도 cron 명령을 다시 실행시킬 필요는 없다.

 

 

 

 

각 사용자는 자신의 crontab 파일을 가질 수 있고, 이 파일들은 /var/spool/cron 디렉토리 아래에 저장된다(하지만 crontab을 이용하는 것 외에 직접 수정할 수는 없다). crontab 명령은 다음과 같다.

 

 

 

 

 

 

 

 

 

crontab [-u 사용자 ID] 파일

crontab [-u 사용자 ID] [ -l | -r | -e ]

 

 

 

 

 

 

 

-u는 특정 사용자의 crontab 파일을 지정하여 사용할 때 사용한다.

 

 

 

-r 옵션은 현재 crontab의 내용을 지운다.

 

 

 

-e 옵션은 VISUAL 또는 EDITOR 환경 변수에 지정된 편집기로 현재 crontab의 내용을 편집한다.

 

 

 

-l 옵션은 현재 crontab 내용을 표준 출력으로 보여준다.

 

 

 

 

/etc/cron.allow 파일이 있으면 그 파일 안에 자신의 ID가 있어야 하고,

 

 

/etc/cron.deny 파일이 있으면 그 파일 안에 자신의 ID가 없어야 한다.

 

 

 

이 두 파일이 모두 없으면 시스템 환경설정에 따라 시스템 관리자만 사용할 수 있거나 모든 사용자가 이 명령을 사용할 수 있다.

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,041 명
  • 현재 강좌수 :  35,855 개
  • 현재 접속자 :  125 명