목차
cron 서비스 개요
- cron 서비스는 리눅스 시스템에서 특정 시간이나 주기에 맞춰 자동으로 명령어 또는 스크립트를 실행하는 서비스.
- 반복적인 작업을 자동화하여 시스템 관리를 효율적으로 만들어줌
cron의 구성 요소
`crontab` : cron 작업을 설정하는 파일. 사용자별로 crontab 파일을 생성하여 관리
`crond` : cron 서비스를 데몬 형태로 실행하는 프로그램. 시스템 부팅 시 자동으로 시작되어 crontab 파일을 읽고 설정된 작업을 실행
root의 cron 작업 파일
- 경로 : `/etc/crontab`
- `root`가 모든 사용자의 cron 작업 등록을 위해 사용하는 파일
- `-perm 640` 이하 권한 설정 권장
일반 사용자 별 crontab 작업 파일
- 경로 : `/var/spool/cron/<사용자 계정명>`
- 각 사용자는 `crontab` 명령을 통해 자기자신의 cron 작업을 등록할 수 있음
- 작업을 등록하면 `/var/spool/cron` 디렉터리에 `사용자 계정명` 에 해당 정기작업이 저장된다
/etc/crontab 파일 설명 (root 사용자만 가능)
`0 9 1-7 * 1 root /path/to/script.sh`
0 | 9 | 1-7 | * | 1 | root | /path/to/script.sh |
`1` 분 | `2` 시 | `3` 일 | `4` 월 | `5` 요일 | `6` 계정명 | `7` 작업 내용 |
0분 | 9시 | 매일 | 매 월 | 월요일 | root 계정 | 해당 경로의 스크립트 실행 |
/etc/crontab 파일 예시 설명
`*/5 * * * * root /usr/local/bin/backup.sh`
- 매 5분간격마다 root 사용자로 백업 스크립트 실행
`0 0 1,2 * * user1 rm /van/log/myapp.log`
- 매월 첫째 날, 둘째 날 0시에 user1 사용자로 로그 파일 삭제
`0 17-19 * * 1 user2 /usr/local/bin/check_system.sh`
- 매주 월요일 오후 5시, 오후6시, 오후7시 정각에 user2 사용자로 시스템 상태 확인하는 스크립트 실행
crontab 명령 문법 (일반 사용자)
`5` 요일 : 요일은 0-6사이로 작성 / 0 = 일요일, 1 = 월요일, 2 = 화요일 등등
`7` 작업 내용 : 실행할 작업은 `무조건 절대 경로`로 작성, 필요 시 옵션과 인수를 모두 작성
`*` 기호 : 각 필드에 해당하는 모든 값을 의미
`-` 기호 : 범위 값을 지정할 때 사용
`,` 기호 : 값을 구분하여 지정할 때 사용
`/` 기호 : 간격값을 지정할 때 사용
crontab 명령 문법 (일반 사용자)
`5` 요일 : 요일은 0-6사이로 작성 / 0 = 일요일, 1 = 월요일, 2 = 화요일 등등
문법 | 리눅스 : `crontab [-u 유저명] [ -e | -l | -r ] 유닉스 : `crontab [ -e | -l | -r ] [유저명] |
|
옵션 | `-e` | crontab 파일을 편집 |
`-l` | 사용자의 crontab 파일을 출력 | |
`-r` | 사용자의 crontab 파일을 삭제 |
crontab 문법 설명
리눅스 | `crontab -u user1 -e` | user1 계정의 작업 등록 파일(crontab)을 편집 |
`crontab -u user1 -l` | user1 계정의 작업 등록 파일(crontab)을 출력 | |
`crontab -u user1 -r` | user1 계정의 작업 등록 파일(crontab)을 삭제 | |
유닉스/솔라리스 | `crontab -e user1` | user1 계정의 작업 등록 파일(crontab)을 편집 |
`crontab -l user1` | user1 계정의 작업 등록 파일(crontab)을 출력 | |
`crontab -r user1` | user1 계정의 작업 등록 파일(crontab)을 삭제 | |
- | `crontab -e` | 자신의 작업 등록 파일(crontab)을 편집 |
`crontab -l` | 자신의 작업 등록 파일(crontab)을 출력 | |
`crontab -r` | 자신의 작업 등록 파일(crontab)을 삭제 |
* root 사용자는 `crontab` 명령으로 특정 사용자를 지정하여 cron 작업을 등록하거나 삭제할 수 있음
* 일반 사용자는 자신의 작업만 등록하거나 삭제 가능
crontab 파일 예시 설명
`* * * * * /path/to/script.sh > /dev/null 2>&1`
- cron 작업 실행 결과를 버리기
- `> /dev/null` : 표준 출력(stdout)을 `/dev/null`로 보내 출력을 버림
- `2>&1` : 표준 오류(stderr)를 표준 출력으로 연결하여 함께 /dev/null로 보냄. 즉 표준 출력과 표준 오류를 모두 버림
'공부 > 정보보안기사' 카테고리의 다른 글
<정보보안기사> 네트워크 보안 <간단 노트1> (0) | 2024.11.22 |
---|---|
<정보보안기사> 1. 시스템 이론 - xinetd 슈퍼데몬 (1) | 2024.11.21 |
<정보보안기사> 1. 시스템 이론 - 파일 시스템 관리(df, du 명령어) (0) | 2024.11.19 |
<정보보안기사> 1. 시스템 이론 - 사용자 관리(useradd, usermod, userdel 명령어) (0) | 2024.11.18 |
<정보보안기사> 1. 시스템 이론 - 파일 검색(find) + 명령어 모음 (0) | 2024.11.17 |
댓글