[Linux] 예약 작업 실습

mommers·2026년 2월 2일

Linux

목록 보기
25/59
post-thumbnail

예약 작업 (cron)

  • 주기적인 자동 실행.
  • crontab -e로 편집기 열기.
  • 1분마다 현재 시간을 파일에 기록하는 작업 등록 (* * * * date >> time.log).
  • 로그 파일 쌓이는 것 확인 후 크론탭 삭제.

crontab 심화

리눅스 내장 '알람 시계'. 특정 시간에 특정 명령어를 자동으로 실행해주는 스케줄러

임베디드/서버 관리의 핵심 도구. 백업, 로그 정리, 센서 데이터 수집 등 '주기적 작업'을 담당한다.

1. 문법 (5개의 별)

가장 중요함. 순서를 외워야 함.

* * * * [실행할 명령어]
┬ ┬ ┬ ┬ ┬
│ │ │ │ └─ 요일 (0~7, 0/7=일요일, 1=월요일)
│ │ │ └──── 월 (1~12)
│ │ └─────── 일 (1~31)
│ └────────── 시 (0~23)
└───────────── 분 (0~59)

2. 핵심 명령어

  • crontab -e: 편집 (Edit). 설정 파일을 엶. (가장 많이 씀)
  • crontab -l: 조회 (List). 현재 예약된 작업 목록 확인.
  • crontab -r: 삭제 (Remove). 주의: 묻지도 따지지도 않고 싹 다 지움.

3. 실전 예제

A. 주기적 실행

  • 매분 실행:Bash
    * * * * /home/pi/check_status.sh
  • 매일 새벽 4시 30분 (백업):Bash
    30 4 * * * /home/pi/backup.sh
  • 매주 월요일 아침 9시:Bash
    0 9 * * 1 /home/pi/report.sh

B. 특수 기호 활용

  • 간격 실행 (/): 5분마다 실행.Bash
    /5 * * * * /home/pi/sensor_read.sh
  • 범위 실행 (): 평일(월~금) 아침 9시.Bash
    0 9 * * 1-5 /home/pi/work.sh
  • 복수 선택 (,): 매시 0분, 30분마다.Bash
    0,30 * * * * /home/pi/ping.sh

C. 임베디드 필수 (@reboot)

  • 부팅 되자마자 실행: (rc.local 대신 많이 씀)Bash
    @reboot /home/pi/startup.sh

4. 주의사항

  1. 절대 경로 필수:

    • cron은 환경변수($PATH)를 거의 모름.
    python3 script.py (X) → /usr/bin/python3 /home/pi/script.py (O)
  2. 로그 남기기 (디버깅):Bash

    • cron은 실행 결과(출력)를 화면에 안 보여줌. 에러 나도 모름.
    • 반드시 파일로 저장하거나 버려야 함.
    # 로그 저장 (표준 출력 + 에러 출력 모두)
    * * * * * /home/pi/task.sh >> /home/pi/task.log 2>&1
    
    # 로그 버리기 (조용히 실행)
    * * * * * /home/pi/task.sh > /dev/null 2>&1
profile
임베디드 개발자가 되기 위해 공부중입니다!

0개의 댓글