Cron이란?
시간 기반 작업 스케줄러. 백업, 로그 정리, 리포트 생성 등 반복 작업 자동화에 사용합니다.
crontab 기본 사용법
Bash
crontab -e # 현재 사용자 편집
crontab -l # 현재 등록된 작업 목록
crontab -r # 전체 삭제 (주의)
sudo crontab -u www-data -eCron 문법
CODE
# ┌─────────── 분 (0-59)
# │ ┌────────── 시 (0-23)
# │ │ ┌───────── 일 (1-31)
# │ │ │ ┌────────── 월 (1-12)
# │ │ │ │ ┌───────── 요일 (0-7, 0과 7=일요일)
# │ │ │ │ │
# * * * * * 실행할_명령어자주 쓰는 패턴
Bash
# 매분 실행
* * * * * /opt/scripts/check.sh
# 매일 오전 2시에 백업
0 2 * * * /opt/scripts/backup.sh
# 매주 월요일 오전 9시
0 9 * * 1 /opt/scripts/weekly_report.sh
# 매월 1일 자정
0 0 1 * * /opt/scripts/monthly_clean.sh
# 매 5분마다
*/5 * * * * /opt/scripts/heartbeat.sh
# 평일(월~금) 오전 8~18시, 매 30분
*/30 8-18 * * 1-5 /opt/scripts/sync.sh환경 변수 설정
Bash
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=admin@example.com
0 2 * * * /opt/scripts/backup.sh로그 기록
Bash
# stdout과 stderr를 파일로 저장
0 2 * * * /opt/scripts/backup.sh >> /var/log/backup.log 2>&1
# 날짜 타임스탬프 추가
0 2 * * * echo "[$(date)] 백업 시작" >> /var/log/backup.log && /opt/scripts/backup.sh >> /var/log/backup.log 2>&1/etc/cron.d 방식 (권장)
Bash
# /etc/cron.d/myapp
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin
# 매일 새벽 3시, deploy 사용자로 실행
0 3 * * * deploy /opt/myapp/scripts/cleanup.sh >> /var/log/myapp-cron.log 2>&1자주 하는 실수
| 실수 | 해결 |
|---|---|
| 명령어 경로 미지정 | 절대 경로 사용 (/usr/bin/python3) |
| 환경변수 없음 | 스크립트 상단에 source /etc/environment |
| 실행 권한 없음 | chmod +x script.sh |
| 결과 확인 어려움 | >> /var/log/cron-job.log 2>&1 추가 |
편집 안내 · Editorial Note
AI 도구가 초안 작성에 사용될 수 있습니다. 명령어의 실행 여부와 검증 환경은 각 가이드에 기재된 근거를 확인하세요. 적용 전 사용 중인 버전의 공식 문서를 확인하고, 오류는 이메일로 알려주세요. 이메일로 제보
주제 관련 공식 문서(자동 연결 · 문장별 근거 아님)GNU/Linux man 페이지 ↗
질문 & 답변 (Q&A)
이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.