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
[email protected]
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)
이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.