
crontab은 리눅스 및 유닉스 시스템에서 특정 시간이나 주기마다 프로그램을 자동으로 실행시키기 위해 사용되는 명령어입니다. 이는 윈도우의 '작업 스케줄러'와 비슷한 개념으로, 시스템 관리나 백업 등 반복적인 작업을 자동화하는 데 필수적입니다.
1. crontab 명령어 옵션
| 옵션 | 용도 | 설명 |
| -l | List | 현재 사용자 계정에 예약된 작업 목록을 확인합니다. |
| -e | Edit | 현재 사용자 계정의 crontab 파일을 수정합니다. |
| -r | Remove | 현재 사용자 계정의 crontab 파일 전체를 삭제합니다. (주의 필요) |
| -u [사용자명] | User | 루트 관리자가 해당 사용자의 crontab 파일을 보거나, 삭제, 편집할 때 사용합니다. |
2. crontab 주기 설정 형식
crontab은 5개의 시간 필드를 공백으로 구분하여 설정하며, 그 뒤에 실행할 명령어를 작성합니다.
# ----------------------------------------------------
# crontab 주기 설정 필드 형식
# ----------------------------------------------------
# ┌───────────── 분 (0 - 59)
# │ ┌─────────── 시간 (0 - 23)
# │ │ ┌───────── 일 (1 - 31)
# │ │ │ ┌─────── 월 (1 - 12)
# │ │ │ │ ┌───── 요일 (0 - 7, 일요일 = 0 또는 7)
# │ │ │ │ │
# * * * * * [실행할 명령어]
| 순서 | 필드 | 범위 | 설명 |
| 1 | 분 | 0 ~ 59 | * 설정 시 1분 단위로 매번 실행 |
| 2 | 시간 | 0 ~ 23 | * 설정 시 매시간 실행 |
| 3 | 일 | 1 ~ 31 | * 설정 시 매일 실행 |
| 4 | 월 | 1 ~ 12 | * 설정 시 매달 실행 |
| 5 | 요일 | 0 (일) ~ 6 (토) 또는 7 (일) | * 설정 시 매일 실행 |
| 6 | 실행 명령어 | 절대 경로를 포함한 실행 명령 |
crontab 주기 설정 예시
# 매일 새벽 3시 30분에 백업 스크립트 실행
30 3 * * * /usr/bin/backup_script.sh
# 매주 월요일, 수요일, 금요일 오후 6시 0분에 시스템 정리 명령어 실행
0 18 * * 1,3,5 /usr/bin/clean_temp.sh
3. crontab 특수 문자 및 기호
시간 필드에 와일드카드나 특정 기호를 사용하여 복잡한 주기를 설정할 수 있습니다.
| 특수 문자 | 의미 | 예시 |
| * | 모든 값 | * * * * * (1분마다 실행) |
| - | 범위 | 0 10-12 * * * (매일 10시, 11시, 12시 0분에 실행) |
| , | 특별한 값 | 0 10 * * 1,3,5 (월, 수, 금 10시 0분에 실행) |
| / | 단위 | */10 * * * * (0분부터 매 10분마다 실행) |
| L | Last | 일 필드: 마지막 날 (L은 그 달의 마지막 날), 요일 필드: 마지막 요일 (7 또는 6, 즉 토요일) |
| W | 가장 가까운 평일 | 10W * * * (매월 10일에 가장 가까운 평일(월~금)을 찾아 실행) |
중요: crontab 환경에서는 환경 변수가 일반 터미널 환경과 다를 수 있으므로, 실행 명령어는 항상 절대 경로( /usr/bin/backup_script.sh 등)를 지정하는 것이 안전합니다.
'리눅스' 카테고리의 다른 글
| [Linux] 리눅스 원격 파일 전송 및 동기화: scp, rsync (0) | 2025.10.30 |
|---|---|
| [Linux] 리눅스 텍스트 처리 및 검색 명령어: find, grep, awk, sed (0) | 2025.10.25 |
| [Linux] 리눅스 쉘 스크립트의 시작: SheBang(#!) (0) | 2025.10.25 |
| [Linux] 리눅스 네트워크 경로 및 병목 지점 확인: traceroute & mtr (0) | 2025.10.25 |
| [Linux] 리눅스 네트워크 진단 및 데이터 통신 명령어 (0) | 2025.10.25 |