/엔지니어/Linux / Shell/Cron 작업 스케줄러 실전 가이드
Linux / Shell초급ubuntucentosdebianmacoscroncrontab스케줄러

Cron 작업 스케줄러 실전 가이드

반복 작업 자동화를 위한 crontab 문법, 환경 변수 설정, 로그 기록 방법을 설명합니다.

Cron이란?

시간 기반 작업 스케줄러. 백업, 로그 정리, 리포트 생성 등 반복 작업 자동화에 사용합니다.


crontab 기본 사용법

Bash
crontab -e        # 현재 사용자 편집
crontab -l        # 현재 등록된 작업 목록
crontab -r        # 전체 삭제 (주의)
sudo crontab -u www-data -e

Cron 문법

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 추가
#cron#crontab#스케줄러#자동화#linux
편집 안내 · Editorial Note

이 가이드는 AI 도구를 활용해 초안을 구성하고 사람이 명령어·문맥을 검토해 발행했습니다. 운영체제와 도구 버전에 따라 결과가 달라질 수 있으므로 적용 전 공식 문서를 함께 확인하세요. 오류를 발견하시면 이메일로 제보해 주세요.

관련 공식 문서GNU/Linux man 페이지

질문 & 답변 (Q&A)

이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.