# 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` = 월요일
예시: ```bash 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 (연속값, 예: 월~금)

`,`(콤마): ****여러 개의 특정 값을 지정****

콤마는 ****지정된 여러 값들 각각에 대해 명령어를 실행****하라는 뜻이다. ```bash 0 9,18 * * * /home/user/task.sh ``` - 매일 ****오전 9시와 오후 6시(18시)**** 에 실행 ```bash 15 1,3,5 * * * /script.sh ``` - 매일 ****1시 15분, 3시 15분, 5시 15분****에 실행 ---

`-`(하이픈): ****범위 지정****

하이픈은 ****연속된 범위****를 의미한다. ```bash 0 8-11 * * * /home/user/job.sh ``` - 매일 ****오전 8시, 9시, 10시, 11시****에 실행 ```bash 30 14 * * 1-5 /script.sh ``` - 매주 ****월~금(1-5)**** 오후 2시 30분에 실행 --- [![image.png](https://dainwiki.com/uploads/images/gallery/2025-07/scaled-1680-/muhHoNfPHyKBzXCl-image.png)](https://dainwiki.com/uploads/images/gallery/2025-07/muhHoNfPHyKBzXCl-image.png) ---