cron

Overview


cron은 리눅스/유닉스 계열 시스템에서 특정 명령이나 스크립트를 정해진 시간에 자동으로 실행해주는 스케줄러다.

  • cron daemon (crond) — 백그라운드에서 항상 돌면서 예약된 작업을 실행하는 프로세스
  • crontab — 작업 스케줄을 정의하는 설정 파일. 각 사용자마다 별도로 존재한다

crontab 문법


분  시  일  월  요일  명령어
*   *   *   *   *     /path/to/command
필드범위비고
0–59
0–23
1–31
1–12
요일0–70과 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