5월 23, 2026가이드
Linux 서버에서 cron 작업 설정
cron 문법, crontab 편집, 일반 스케줄 예시, VPS 자동 작업 로깅.

cron은 Linux 표준 스케줄러로 백업, 캐시 정리, 인증서 확인 등을 정해진 시간에 실행합니다. Hiddence 서버에서의 사용법을 설명합니다.
cron 문법
각 줄은 다섯 시간 필드 뒤에 명령이 옵니다:
bash
# ┌──────── minute (0-59)
# │ ┌────── hour (0-23)
# │ │ ┌──── day of month (1-31)
# │ │ │ ┌── month (1-12)
# │ │ │ │ ┌─ day of week (0-7, 0 and 7 = Sunday)
# │ │ │ │ │
# * * * * * command
# Every day at 3:00 AM:
0 3 * * * /usr/local/bin/backup.sh
# Every 15 minutes:
*/15 * * * * /usr/local/bin/check.shcrontab 편집
현재 사용자는 crontab -e. 시스템 작업은 보통 sudo로 root crontab을 사용합니다:
bash
# Edit your user crontab
crontab -e
# Edit root crontab
sudo crontab -e
# List current jobs
crontab -l
sudo crontab -l일반 예시
- 0 2 * * * — 매일 새벽 2시 백업
- 0 */6 * * * — 6시간마다
- 0 0 * * 0 — 매주 일요일 자정
- */5 * * * * — 5분마다(신중히 사용)
- @reboot /path/script.sh — 재부팅 후 1회
- @daily /usr/bin/certbot renew --quiet — 매일 Certbot 확인
로깅 및 디버깅
출력을 로그 파일로 리다이렉트해 실패를 확인합니다:
bash
0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup-cron.log 2>&1
# View cron execution in system log:
grep CRON /var/log/syslog # Ubuntu
grep CRON /var/log/cron # CentOS팁
- cron 명령에 절대 경로 사용
- crontab 추가 전 스크립트 수동 테스트
- 오류 메일용 crontab에 MAILTO=your@email.com(메일 설정 시)
- 복잡한 의존성은 최신 시스템에서 systemd 타이머 고려
- 무거운 작업을 매분 실행하지 말 것 — VPS 과부하