-
리눅스 crontab 완전 정복: 스케줄링의 모든 것카테고리 없음 2025. 2. 4. 22:22
서버 관리의 필수 도구인 crontab을 마스터하기 위한 최적의 가이드. 기본 설정부터 고급 활용법까지, 실무에서 바로 쓸 수 있는 노하우를 공개합니다.
crontab 기본 구조 이해
* * * * * command_to_execute ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ │ │ │ │ └─ 요일 (0-6) (0=일요일) │ │ │ └────── 월 (1-12) │ │ └─────────── 일 (1-31) │ └──────────────── 시 (0-23) └───────────────────── 분 (0-59)
실전 예제 모음
설명 표현식 매일 자정 실행 0 0 * * *
평일 오전 9시 0 9 * * 1-5
10분 간격 */10 * * * *
매월 1일 새벽 3시 0 3 1 * *
crontab 설정 방법
1. crontab 편집기 실행
$ crontab -e
2. 기본 환경 설정
# 기본 편집기 설정 export EDITOR=vim # 메일 알림 설정 MAILTO="admin@example.com"
3. 작업 추가 예시
# 매일 3시 백업 실행 0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
고급 활용 기법
특수 문자열 활용
@reboot
: 시스템 재부팅 시 실행@yearly
: 매년 1월 1일 00:00 실행@monthly
: 매월 1일 00:00 실행
로그 관리 전략
# 표준 출력/에러 로그 기록 * * * * * /path/to/script.sh >> /var/log/cron.log 2>&1 # 로그 로테이션 설정 0 0 * * * /usr/sbin/logrotate /etc/logrotate.d/cron
crontab 관리 명령어
명령어 기능 crontab -l
현재 작업 목록 확인 crontab -r
모든 작업 삭제 crontab -u user
특정 사용자 작업 관리 문제 해결 가이드
Q: cron이 실행되지 않을 때
- 서비스 상태 확인:
systemctl status cron
- 로그 확인:
grep CRON /var/log/syslog
- PATH 확인: 스크립트 상단에
#!/bin/bash
추가
Q: 시간대 설정 오류
# 현재 시간대 확인 $ timedatectl # 시간대 변경 $ sudo timedatectl set-timezone Asia/Seoul
보안 모범 사례
- 루트 권한 최소화: 일반 사용자 계정으로 실행
- 스크립트 권한 설정:
chmod 700
- 정기 점검:
crontab -l
로 의심스러운 작업 확인
마무리
crontab은 단순한 스케줄러가 아닌 시스템 운영의 핵심 도구입니다. 본 가이드의 내용을 바탕으로 안정적이고 효율적인 작업 스케줄링 환경을 구축하세요. "잘 설정된 crontab은 시스템 관리자의 가장 든든한 조력자"임을 기억하십시오!