시스템(Linux)

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

forward error correction Circle 2023. 1. 20. 12:10
반응형

 

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 가능
반응형