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 -l0 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만이 명령을 실행할 수 있다( 일부는 모든 사용자 허용 )
'리눅스' 카테고리의 다른 글
[Linux] 로그 기본 개념 설명 (0) | 2018.12.12 |
---|---|
[Linux] 리눅스 부팅 과정 (0) | 2018.12.11 |
[RHEL] 레드햇 서브스크립션(Subscription) 확인 방법 (0) | 2018.12.03 |
[Linux] Apache(아파치) httpd.conf 기본 구성 (0) | 2018.10.29 |
[Linux] 주석 없는 라인만 보고싶다면? grep -v 명령어 (0) | 2018.10.26 |
[Linux] rsyslog 설정 및 관리 (1) | 2018.10.26 |
[CentOS7 / RHEL 7] systemd : start session ## of user root 해결방법 (0) | 2018.10.23 |
[Linux/CentOS7] 관리자(root) 패스워드 찾기 - 싱글모드 부팅 (0) | 2018.10.17 |