본문 바로가기
시스템(Linux)

일정한 간격의 반복적인 작업 실행을 위한 리눅스 명령어에 대해 알아보겠습니다.

by forward error correction Circle 2023. 1. 20.
반응형

 

1. cron 정의

 유닉스 계열의 스케줄러입니다. 주기적인 작업에 대해 일정한 시간, 일정한 날짜, 일정한 간격 등 주기적으로 실행하는 작업에 대해 스케줄링하기 위한 소프트웨어 입니다.

 

2. cron 특징 및 설정 파일

- 정기적인 반복 작업 수행을 위한 유틸리티

- 정기적 스케줄 관리, 정기적인 작업을 지정시간에 처리하기 위해 사용

- 데몬 : /usr/sbin/crond

- 설정파일 : /etc/crontab

 

3. Cron 과 Crontab

 cron은 셸 명령어들이 주어진 일정에 주기적으로 실행하도록 규정해놓은 crontab (cron table) 파일에 의해 구동됩니다.

crontab 파일들은 잡 목록 및 cron 데몬에 대한 다른 명령들이 보관된 위치에 저장되어 있습니다. 

 

4. crontab 옵션 정리

옵션 내용 명령
-e crontab 리스트 편집(edit) #crontab -e
-l crontab 리스트 출력(list) #crontab -l
-r crontab 리스트 삭제(remove) #crontab -r
-u crontab 사용자 지정(user), root가 사용 #crontab -u 3210w0 -l

 

5. crontab 사용법

 # ┌───────────── min (0 - 59)
 # │ ┌────────────── hour (0 - 23)
 # │ │ ┌─────────────── day of month (1 - 31)
 # │ │ │ ┌──────────────── month (1 - 12)
 # │ │ │ │ ┌───────────────── day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names; 
 # │ │ │ │ │                                                                             7 is Sunday, the same as 0)  
 # │ │ │ │ │
 # * * * * *  command to execute
   1 2 3 4 5 6
1 2 3 4 5 6
* * * * * command
분 0-59 시 0-23 일 1-31 월 1-12 요일 0-6 명령(절대경로)

ex #1) 매주 일요일 backup 쉘 실행
            *  *  *  *  0  /bin/sh backup.sh

ex #2) 매일 2,3,4시 backup 쉘 실행

            *  2-4  *  *  *  /bin/sh backup.sh

ex #3) 매일 1,3,7시 backup 쉘 실행

            *  1,3,7  *  *  *  /bin/sh backup.sh
ex #4) 5분마다 backup 쉘 실행 

           */5  *  *  *  *  /bin/sh backup.sh

 

6. crontab 명령 접근 제어

- crontab 명령을 실행할 수 있는 사용자 제한

- /etc/cron.allow, /etc/cron.deny

/etc/cron.allow /etc/cron.deny 접근제어
O X cron.allow 등록된 계정만 가능(화이트리스트 방식)
X O cron.deny 등록된 계정만 접근 불가능(블랙리스트 방식)
O O cron.allow 우선 (cron.allow 등록된 계정만 가능)
X X root만 crontab 가능
반응형