Skip to main content

cron, crontab, crond


1. cron

  • 리눅스/유닉스의 예약 실행 시스템 이름
  • 사용자가 명시한 시간/주기로 자동으로 명령을 실행
  • 시스템이 시작되면 자동으로 작동

2. crontab (cron table)

두 가지 의미가 있음:

파일
→ 각 사용자별 예약 작업을 저장한 설정 파일

명령어
→ crontab 설정을 편집/조회/삭제하는 도구

명령어

설명

crontab -e

현재 사용자 crontab 편집

crontab -l

현재 사용자 crontab 보기

crontab -r

현재 사용자 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
  1. 사용자가 crontab -e로 작업 예약
  2. 설정 내용이 /var/spool/cron/ 아래 저장
  3. crond 데몬이 해당 내용을 읽고 시간 맞춰 실행

4. crontab Time Format

분 시 일 월 요일 명령어

필드

의미

예시

0~59

0 = 정각

0~23

3 = 새벽 3시

1~31

* = 매일

1~12

* = 매월

요일

0~6 (0=일요일)

1 = 월요일

예시:

30 6 * * 1 /home/user/report.sh

→ 매주 월요일 오전 6시 30분에 report.sh 실행


5. crontab Time Format

crontab(크론탭)에서 ,(콤마)와 -(하이픈) 기호는 여러 시간 범위나 개별 값을 지정할 때 사용한다.

기호

의미

예시

설명

,

여러 개의 특정 값

3,6,9

3, 6, 9시에 실행

-

범위

1-5

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분에 실행


image.png