ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리눅스 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이 실행되지 않을 때

    1. 서비스 상태 확인: systemctl status cron
    2. 로그 확인: grep CRON /var/log/syslog
    3. PATH 확인: 스크립트 상단에 #!/bin/bash 추가

    Q: 시간대 설정 오류

    # 현재 시간대 확인
    $ timedatectl
    
    # 시간대 변경
    $ sudo timedatectl set-timezone Asia/Seoul

    보안 모범 사례

    • 루트 권한 최소화: 일반 사용자 계정으로 실행
    • 스크립트 권한 설정: chmod 700
    • 정기 점검: crontab -l로 의심스러운 작업 확인

    마무리

    crontab은 단순한 스케줄러가 아닌 시스템 운영의 핵심 도구입니다. 본 가이드의 내용을 바탕으로 안정적이고 효율적인 작업 스케줄링 환경을 구축하세요. "잘 설정된 crontab은 시스템 관리자의 가장 든든한 조력자"임을 기억하십시오!

Designed by Tistory.