리눅스 CRON 설정 - 이해하기


리눅스 CRON 설정 한방 정리 

CRON(크론)은 리눅스에서 정해진 시간에 자동으로 명령을 실행해주는 “예약 실행” 기능입니다.
예: 매일 새벽 3시에 로그 백업, 매주 일요일에 업데이트 점검, 5분마다 서버 상태 체크 등.


1) CRON 구성 요소: crond + crontab

  • crond(데몬): 스케줄을 실제로 돌려주는 백그라운드 서비스

  • crontab(설정 파일): 언제(주기) 무엇(명령)을 실행할지 적는 표


2) 크론 시간 문법(핵심 5칸)

CRON은 아래 5개 필드로 시간을 표현합니다.

분(Min) 시(Hour) 일(Day) 월(Month) 요일(Weekday)  실행할_명령
필드 범위
0~59 0, 5, 30
0~23 0(자정), 3(새벽3시)
1~31 1, 15
1~12 1(1월), 12(12월)
요일 0~7 0/7=일, 1=월 … 6=토

3) 특수 기호(시험/실무 필수)

기호 의미 예시
* “매번” * * * * * = 매 1분마다
, 여러 값 1,15 = 1일과 15일
- 범위 1-5 = 1~5
/ 간격(주기) */5 = 5분마다

4) 예제로 바로 이해하기

✅ 매일 새벽 3시 0분에 실행

0 3 * * * /path/script.sh

✅ 5분마다 실행

*/5 * * * * /path/health_check.sh

✅ 평일(월~금) 오전 9시에 실행

0 9 * * 1-5 /path/workday_job.sh

✅ 매달 1일 00:10에 실행

10 0 1 * * /path/monthly_report.sh

5) crontab 명령어(자주 쓰는 것만)

명령 설명
crontab -e 내 크론 편집
crontab -l 내 크론 목록 보기
crontab -r 내 크론 전부 삭제(주의)

6) “안 돌아가요” 체크리스트(실수 TOP)

  1. 경로 문제: 크론은 PATH가 짧아서 python, bash가 안 잡힐 수 있어요 → 절대경로 권장

  2. 권한 문제: 스크립트 실행 권한 필요

    • 예: chmod +x /path/script.sh

  3. 로그 미남김: 결과를 파일로 남기면 디버깅이 쉬워요

    • 예: ... >> /var/log/myjob.log 2>&1

  4. 환경변수 미적용: bashrc/profile이 안 읽힐 수 있음


7) 보안 관점 포인트(정보보안기사 느낌!)

CRON은 편하지만, 보안적으로는 “자동 실행 경로”라서 관리가 중요합니다.

  • 권한 최소화: 가능하면 root 크론 대신 일반 사용자 크론 사용

  • 스크립트/디렉터리 권한 점검

    • 크론이 실행하는 스크립트가 다른 사용자에게 쓰기 권한이 있으면 위험(변조 후 자동 실행 가능)

  • 로그/감사: 중요한 작업은 실행 로그를 남기기

  • 크론 파일 위치/관리

    • 시스템 크론: /etc/crontab, /etc/cron.d/, /etc/cron.daily/

    • 사용자 크론: crontab -e로 관리(시스템이 내부 위치에 저장)

시험식 한 줄 요약:
CRON은 주기적 작업 자동화를 제공하지만, 권한/경로/변조 위험 관리가 핵심이다.


댓글 쓰기

새 댓글을 작성할 수 없습니다.*

다음 이전