cron
2 min read
Overview
cron은 리눅스/유닉스 계열 시스템에서 특정 명령이나 스크립트를 정해진 시간에 자동으로 실행해주는 스케줄러다.
- cron daemon (
crond) — 백그라운드에서 항상 돌면서 예약된 작업을 실행하는 프로세스
- crontab — 작업 스케줄을 정의하는 설정 파일. 각 사용자마다 별도로 존재한다
crontab 문법
분 시 일 월 요일 명령어
* * * * * /path/to/command
| 필드 | 범위 | 비고 |
|---|
| 분 | 0–59 | |
| 시 | 0–23 | |
| 일 | 1–31 | |
| 월 | 1–12 | |
| 요일 | 0–7 | 0과 7 모두 일요일 |
특수 문자
| 문자 | 의미 | 예시 |
|---|
* | 모든 값 | * * * * * → 매분 |
, | 여러 값 | 0,30 * * * * → 0분, 30분 |
- | 범위 | 9-17 * * * * → 9시~17시 |
/ | 간격 | */5 * * * * → 5분마다 |
예시
# 매일 오전 2시에 백업 스크립트 실행
0 2 * * * /home/user/backup.sh
# 매주 월요일 오전 9시에 실행
0 9 * * 1 /home/user/weekly_report.sh
# 매 5분마다 실행
*/5 * * * * /home/user/check.sh
# 매월 1일 자정에 실행
0 0 1 * * /home/user/monthly.sh
# 평일 오전 9시~오후 6시, 매 30분마다 실행
*/30 9-18 * * 1-5 /home/user/workday_check.sh
자주 쓰는 명령
crontab -e # 현재 사용자의 crontab 편집
crontab -l # 현재 등록된 작업 목록 보기
crontab -r # 현재 crontab 삭제
로그 확인
# cron 실행 로그 확인
grep CRON /var/log/syslog
# systemd 기반 시스템
journalctl -u cron