[Linux] Crontab 관련 설명 및 사용법 소개
1. 개요
Linux Crontab은 Unix 계열 운영 체제의 시간 기반 작업 스케줄러입니다. 특정 시간 또는 간격으로 실행되도록 작업(명령 또는 스크립트)을 예약하는 데 사용됩니다. Crontab은 “cron table”의 줄임말입니다. 여기서 “cron”은 백그라운드에서 실행되고 crontab 파일에서 예약된 작업을 확인하는 데몬입니다.
crontab 명령은 crontab 파일을 생성, 편집 및 삭제하는 데 사용됩니다. crontab 파일에는 각각 별도의 행에 작업 목록이 포함되어 있으며 각 작업은 실행할 시기와 실행할 명령 또는 스크립트를 결정할 수 있습니다.
2. Crontab 옵션 및 수행주기 설정방법
실행구문: crontab [option]
usage: crontab [-u user] file
crontab [-u user] [ -e | -l | -r ] [-i] [-s]
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)
-s (selinux context)
실행 주기 설정
* | * | * | * | * |
---|---|---|---|---|
분 | 시 | 일 | 월 | 요일 |
0~59 (분) | 0~23 (시) | 0~31 (일) | 1~12 (월) | 0 또는 7 (일요일) 1 (월요일) 2 (화요일) 3 (수요일) 4 (목요일) 5 (금요일) 6 (토요일) |
crontab Usage
순서대로 나열하여 적어보면...
* * * * * CommandToExecute
mins(0~59) hours(0~23) dayOfMonth(1~31) month(1~12) weekday(0~6)) CommandToExecute
# * * * * * command to execute
# ┬ ┬ ┬ ┬ ┬
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ └───── day of week (0 - 6) (0 to 6 are Sunday to Saturday)
# │ │ │ └────────── month (1 - 12)
# │ │ └─────────────── day of month (1 - 31)
# │ └──────────────────── hour (0 - 23)
# └───────────────────────── min (0 - 59)
3. Crontab 사용 예시 소개
1. 매분마다 실행
* * * * * [명령문]
/1 * * * * * [명령문]
ex ) * * * * * /home/testuser/testpractices.sh
2. 매시 정각에 실행
0 * * * * [명령문]
ex ) 0 * * * * /home/testuser/testpractices.sh
3. 매시 20분, 50분에 실행
20,50 * * * * [명령문]
위와 같이 , (콤마)를 사용하면 해당하는 시간을 직접 중복 지정할 수 있습니다.
ex) 20,50 * * * * /home/testuser/testpractices.sh
4. 6시간마다 30분에 명령문 실행
30 */6 * * * [명령문]
위에 설명한 바와 같이 / 를 사용하면 시간 주기를 지정할 수 있습니다.
ex ) 30 */6 * * * /home/testuser/testpractices.sh
5. 월~금 5시에 명령문 실행
0 5 * * 1-5 [명령문]
- 기호를 사용하여 주기 지정도 가능합니다.
ex) 0 5 * * 1-5 /home/testuser/testpractices.sh
댓글남기기