본문 바로가기
리눅스

[Linux] 리눅스 정기적 반복 작업 관리 (Crontab)

by 공대냥이 2018. 12. 11.
반응형

 

 

Cron 데몬 프로세스는 시스템에서 정기적인 작업을 지정시간에 처리하기 위해 사용한다.

시스템에서 기본적으로 지원하는 데몬 프로세스이므로 사용법만 숙지하면 된다.

 

 

Cron 데몬 프로세스를 통한 효율적인 작업

 

   - 일괄적으로 처리해야 하는 작업 ( 몰아서 하는 야간작업)

   - 작업에 대한 요구가 규칙적인 경우

   - 우선순위가 낮은 작업을 일정시기에 처리하는 경우

   - 작업 빈도가 낮아서 필요 시점에 처리하여 마무리하는것이 효율적일 경우

 
Cron 데몬 프로세스 사용에 필요한 구성요소
 

   - 정기적으로 처리할 작업 목록을 정의한 crontab

   - crontab파일을 제어하는 명령

   - crontab 파일을 읽어서 내용에 정의된 대로 작업을 처리하는 cron 데몬 프로세스

 
구분 기술 방법
필드 의미
필드1 0 ~ 59 까지의 숫자로 기술
필드2 0 ~ 23 까지의 숫자로 기술
필드3 1 ~ 31 까지의 숫자로 기술
필드4 1 ~ 12 까지의 숫자로 기술
필드5 요일 0 ~ 6 까지의 숫자로 기술 ( 0 : 일요일 )
필드6 작업 지정 시간에 실행할 작업을 절대 경로로 기술하고 필요한 옵션와 인수를 함께 나열

↑crontab 파일의 구조

 

예시)

# crontab -l

   0  2  *  *  *  excute.sh                               매일 02시에 excute.sh 실행

   0  9 - 11  *  *  *  excute.sh                         매일 9시, 10시, 11시에 excute.sh 실행

   0  1,2,5  *  *  *  excute.sh                           매일 1시, 2시, 5시에 excute.sh 실행

   */5  *  *  *  *  excute.sh                              매 5분 간격으로 excute.sh 실행

   20  6  *  *  1-5  /test/test.sh                        매월 매일 월~금요일 06시 20분에 /test/test.sh 실행  

 
Crontab 파일 제어
 

   - crontab 파일은 사용자 계정별로 만들어진다.

   - 시스템 관리자인 root는 사용자를 명시적으로 지정하여 다른 사용자의 crontab 파일을 편집할 수 있으며, 일반 

     사용자는 자신의 crontab 파일만 편집할 수 있다.

   - 사용자 계정을 명시하지 않으면 자신의 계정을 의미한다.

 

문법 리눅스  crontab [ -u username ] [ -e | -l | -r ] 
유닉스  crontab [ -e | -l | -r ] [ username ] 
 옵션 -e  crontab 파일을 편집한다. 
-l  crontab 파일을 출력한다. 
-r  crontab 파일을 삭제한다. 

 

예시)

# crontab -u linux01 -e                                           [Linux] linux01계정의 crontab 파일을 수정한다.

# crontab -l  unix01                                               [Unix] unix01 계정의 crontab 을 출력한다.

# crontab -r                                                         [Linux / Unix] 자신의 crontab 파일을 삭제한다.        

 

Crontab 명령 접근제어

 

   - crontab 명령을 실행할 수 있는 사용자를 제한하여 허용하지 않는 사용자가 임의로 사용하지 못하도록 설정

   - crontab 명령 접근 제어를 위해 /etc/cron.allow, /etc/cron.deny 파일을 사용한다.

   - cron.allow 파일만 존재할 경우 해당 파일에 등록된 사용자만 명령을 실행할 수 있다.

   - cron.deny 파일만 존재할 경우 해당 파일에 명시된 사용자를 제외하고 모든 사용자가 명령을 실행할 수 있다.

   - 두 파일이 모두 존재하는 경우 cron.allow파일에 등록된 사용자만 명령을 실행할 수 있다.

   - 두 파일이 모두 없는 경우 대부분의 시스템에서 root만이 명령을 실행할 수 있다( 일부는 모든 사용자 허용 ) 

 

반응형