리눅스

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

공대냥이 2018. 12. 11. 09:35
반응형

 

 

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만이 명령을 실행할 수 있다( 일부는 모든 사용자 허용 ) 

 

반응형