cron, crontab, crond
1. cron
- 리눅스/유닉스의 예약 실행 시스템 이름
- 사용자가 명시한 시간/주기로 자동으로 명령을 실행
- 시스템이 시작되면 자동으로 작동
2. crontab (cron table)
두 가지 의미가 있음:
① 파일
→ 각 사용자별 예약 작업을 저장한 설정 파일
② 명령어
→ crontab 설정을 편집/조회/삭제하는 도구
명령어 | 설명 |
---|---|
| 현재 사용자 crontab 편집 |
| 현재 사용자 crontab 보기 |
| 현재 사용자 crontab 삭제 |
예: 매일 3시에 백업 실행
0 3 * * * /home/user/backup.sh
→ 매일 새벽 3시에 backup.sh 실행
3. crond
- cron 시스템의 데몬 프로세스
- 항상 백그라운드에서 실행 중이며,
- crontab 파일을 읽고, 예약 시간에 맞춰 작업을 수행함
# 데몬 확인
ps -ef | grep crond
# 데몬 시작
sudo systemctl start crond
# 부팅 시 자동 실행 설정
sudo systemctl enable crond
- 사용자가
crontab -e
로 작업 예약 - 설정 내용이
/var/spool/cron/
아래 저장 crond
데몬이 해당 내용을 읽고 시간 맞춰 실행
4. crontab Time Format
분 시 일 월 요일 명령어
필드 | 의미 | 예시 |
---|---|---|
분 | 0~59 |
|
시 | 0~23 |
|
일 | 1~31 |
|
월 | 1~12 |
|
요일 | 0~6 (0=일요일) |
|
예시:
30 6 * * 1 /home/user/report.sh
→ 매주 월요일 오전 6시 30분에 report.sh 실행
5. crontab Time Format
crontab
(크론탭)에서 ,
(콤마)와 -
(하이픈) 기호는 여러 시간 범위나 개별 값을 지정할 때 사용한다.
기호 | 의미 | 예시 | 설명 |
---|---|---|---|
| 여러 개의 특정 값 |
| 3, 6, 9시에 실행 |
| 범위 |
| 1 ~ 5 (연속값, 예: 월~금) |
✅ ,
(콤마): 여러 개의 특정 값을 지정
콤마는 지정된 여러 값들 각각에 대해 명령어를 실행하라는 뜻이다.
0 9,18 * * * /home/user/task.sh
- 매일 오전 9시와 오후 6시(18시) 에 실행
15 1,3,5 * * * /script.sh
- 매일 1시 15분, 3시 15분, 5시 15분에 실행
✅ -
(하이픈): 범위 지정
하이픈은 연속된 범위를 의미한다.
0 8-11 * * * /home/user/job.sh
- 매일 오전 8시, 9시, 10시, 11시에 실행
30 14 * * 1-5 /script.sh
- 매주 월~금(1-5) 오후 2시 30분에 실행