crontab(1)

OS/리눅스 & 유닉스 2010. 5. 18. 18:00

1. crontab

1) crontab이란?

- crontab은 시스템의 주기적인 cron작업의 설정, 수정 등을 하는 명령어입니다. 시스템에서 가장 중요한 데몬중의 하나인 crond와 직접적인 관련이 있는 명령어로서 시스템 최고관리자 또는 일반사용자들의 주기적이고 반복적인 특정 작업의 자동실행을 위하여 지원하는 명령어입니다.

 

2) 사용형식

사용형식 : crontab [ -u 사용자 ID] 파일

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

 

3) 시스템 크론데몬 crond 실행, 중지, 재시작하기

실행

#/etc/rc.d/init.d/crond start

중지

#/etc/rc.d/init.d/crond stop

재시작

#/etc/rc.d/init.d/crond restart

그림 1)crond 중지와 시작화면


  - ps –ef | grep crond로 현재 crond데몬이 실행중인가를 확인했습니다.

 

4) /etc/crontab

 - 시스템 크론데몬인 crond /etc/cronrab파일의 설정을 읽어 들여서 설정되어 있는 대로 실행을 합니다.

그림 2)/etc/crontab 출력화면


  - 크론설정은 위에서도 언급했듯이 주기적인 작업을 등록해 놓고 일정한 시간에 자동적으로 실행되기 위하여 쓰여진다 하였습니다. 그렇다면 우선 실행될 시간을 등록해 줘야 합니다. 그림2가 그런 시간과 실행될 디렉토리를 지정한 파일입니다.

    시간지정은 위 그림을 보시면 이해가 되실거라 생각하고 생략하고 요일은 0이 일요일부터 1이 월요일 6이 토요일 순으로 진행됩니다. 그리고 각 파트는 /etc/cron.#의 디렉토리를 참조 하여 그 디렉토리안의 파일들을 실행하게 됩니다. 예를 들어 매일 실행되는 크론은 /etc/cron.daily 디렉토리를 참조합니다. cron.daily디렉토리는 그림3에서 확인하실 수 있습니다.

그림 3)/etc/cron.daily 디렉토리


5) 일반사용자의 crontab명령어 사용허가 및 제한

 a) 리눅스 초기설정은 crontab명령어를 일반사용자에게 허락하지 않고 오직 최고관리자(root)에게만 그 권한을 부여합니다. 하지만 /etc/cron.allow /etc/cron.deny파일을 생성해 줌으로써 일반사용자도 crontab명령어를 이용할 수 있습니다.

* 만약 cron.allow 파일이 존재 한다면 root라하더라고 이 파일에 등록을 해야먄 crontab설정이 가능해집니다.

b) 사용자허가 파일만들기.

  ) /etc/cron.allow 파일을 생성해준다.

  ) /etc/cron.deny 파일을 생성해준다.

  ) 각 파일에 crontab명령어를 사용허가 및 제한 할 사용자 id를 기입한다.

* 위의 두 파일을 생성해 주었다면 꼭 allow파일에 root를 기입해주시길 바랍니다.

그림 4) /etc/cron.allow파일내용


) 설정이 끝났다면 #crontab –e로 한 번 확인을 해보시길 바랍니다. 만약 허가된 사용자라면 cron설정창으로 들어갈 것이고  제한된 사용자는 “you a not allowed to use this program”이라는 메시지를 출력하며 명령어가 허용되지 않습니다.

 

6) 개별사용자의 cron설정

* 혹시라도 혼돈할 수 있으니 정확히 설명하고 넘어가겠습니다. 위의 crontab설정들은 시스템전체에 해당하는 cron설정들 이였습니다. 예를 들자면 윈도우 업데이트 및 로그파일 관리등을 담당하며 지금부터 설명드리는 개별사용자의 cron파일은 자신의 디렉토리를 백업받는등 개별사용자가 자신에 맞게 자동적으로 실행되는 cron파일등을 저장 실행하는 설정입니다.

 

   a) 사용자의 cron설정방법

cron 설정

#crontab –e

cron 확인

# crontab –l

cron 삭제

# crontab –r

root로 일반사용자cron 설정

# crontab –u [ID] –e

 ex) crontab –u eunsu –e (eunsu란 계정의 cron을 설정한다.)

그림 5)cron 적용 출력


) crontab –e로 현재 루트의 cron설정을 입력했습니다.

   ) 입력한 결과를 crontab -l로 출력했습니다.

    - 출력결과 중 1-59부분은 cron시간 설정 시 “-“의 사용은 “~부터 ~까지라고 생각하시면 됩니다 즉 위의 결과는 1분부터 59분까지 계속적으로 왼편의 명령행을 실행하라는 의미가 됩니다.

    - 1,10,20의 의미는 1그리고 10그리고 20입니다. 즉 위의 경우 날짜란에 들어 갔으니 1 10 20일입니다.

   ) crontab –r로 현재 사용자(root) cron을 다 삭제했습니다.

   ) 다시확인 해 본 결과 crontab이 없을 음 확인 할 수 있습니다. 

 

* 개별사용자의 cron파일은 /var/spool/cron 디렉토리에서 확인 하실 수 있습니다.

'OS > 리눅스 & 유닉스' 카테고리의 다른 글

crontab(3)  (0) 2010.05.18
crontab(2)  (0) 2010.05.18
vi 에디터  (0) 2010.05.07
vi 메뉴얼  (0) 2010.04.22
grep 명령어  (0) 2010.04.20
: