cron 서비스
cron 은 UNIX/LINUX 시스템의 정기적으로 등록된 작업을 실행시켜주는 서비스이다. cron 서비스를 이용하려면 다음 세 가지 구성요소가 필요하다
crontab 파일
: 정기적 작업 등록 파일crontab 명령
: 작업 등록을 위해 사용하는 명령crond
: cron 데몬 프로세스로 작업 등록 파일에 정의된 작업을 처리하는 데몬 프로세스
/etc/crontab 파일 형식 ✨
root가 설정하는 작업 등록 파일로 모든 사용자에 대한 작업을 등록할 수 있다 ➜ 640 권한 설정 권장
분 | 분은 0-59까지 숫자로 작성 |
시 | 시는 0-23까지 숫자로 작성 |
일 | 일은 1-31까지 숫자로 작성 |
월 | 월은 1-12까지 숫자로 작성 |
요일 | 요일은 0-6까지 숫자로 작성 ( 0:일요일, 1:월요일 ~ ) |
계정명 | 작업을 실행할 사용자 계정명 |
작업 | 실행할 작업으로 절대 경로로 작성 |
* : 필드에 해당하는 모든 값 | - : 범위의 값 지정 | , : 값 구분 | / : 간격 값
0 1 * * * root /work/batch.sh
: 매일 1시에 root 계정으로 /work/batch.sh 실행0 8-10 * * * gang /work/batch.sh
: 매일 8시, 9시, 10시에 gang 계정으로 /work/batch.sh 실행0 1,2,5 * * * root /work/batch.sh
: 매일 1시, 2시, 5시에 root 계정으로 /work/batch.sh 실행20 6 * * 1-5 root /work/batch.sh
: 매주 월요일부터 금요일 6시 20분에 root 계정으로 /work/batch.sh 실행*/5 * * * * root /work/batch.sh
: 매 5분 간격으로 root 계정으로 /work/batch.sh 실행#0 23 * * * gang /work/batch.sh
: 주석(#) 처리 되었으므로 실행하지 않음
개별 사용자의 작업 등록
관리자는 crontab 명령으로 사용자를 명시적으로 지정하여 해당 사용자의 작업을 등록하거나 삭제할 수 있지만 일반 사용자는 자신의 작업만 등록하거나 삭제할 수 있다.
개별 사용자가 crontab 명령으로 등록한 작업은 /var/spool/cron
디렉터리에 사용자 계정명 파일로 저장된다. e.g. /var/spool/cron/gang
crontab [-u user]
-e
: 개별 사용자의 cron 작업 등록 파일 편집-l
: 개별 사용자의 cron 작업 등록 파일 출력-r
: 개별 사용자의 cron 작업 등록 파일 삭제
crontab -u gangintheremark -e : root가 gang 계정 작업 등록 파일을 편집한다.
crontab -r : 현재 사용자가 자신의 작업 등록 파일을 삭제한다.
30 23 * * * /work/batch.sh 1>/dev/null 2>&1
- 매일 23시 30분에 gang 계정으로 /work/batch.sh 작업 실행한다. (표준 출력과 표준 에러는 생략)
- crontab 파일 설정과 다른 점은 계정별로 파일이 생성되므로 작업을 실행할 계정명을 명시하지 않는다.
- 계정별로 등록한 cron 작업은
/var/spool/cron/gang
파일에 저장된다.
1>/dev/null 2>&1
일반적으로 cron을 통해 자동으로 실행되는 작업은 모니터 출력이 불필요하므로 출력 재지정을 통해 표준 출력과 표준 에러를 모두 /dev/null 장치파일로 재지정하여 버린다.
crontab 명령 접근제어
crontab 명령을 실행할 수 있는 사용자를 제한하여 허용하지 않는 사용자가 임의로 작업 등록을 못하도록 설정한다. ➜ cron.allow
cron.deny
- 화이트리스트 정책 :
/etc/cron.allow
파일에 허용할 사용자를 지정하고 나머지 사용자를 모두 차단한다. - 블랙리스트 정책 :
/etc/cron.deny
파일에 차단할 사용자를 지정하고 나머지 사용자를 모두 허용한다.
만약 cron.allow 파일과 cron.deny 파일 모두 생성하면 cron.allow 파일이 우선 적용되며 2개의 파일이 모두 없는 경우엔 root 만 crontab 명령을 사용할 수 있다.
'Linux' 카테고리의 다른 글
[Linux] 프로세스 실행 권한 sticky-bit (0) | 2024.04.20 |
---|---|
[Linux] shadow 패스워드 정책 및 계정 정책 관리 (0) | 2024.04.20 |
[Linux] 사용자 및 그룹 관리 (0) | 2024.04.17 |
[Linux] 프로세스 관련 식별자 (0) | 2024.04.16 |
[Linux] 프로세스 응용 (0) | 2024.04.16 |