⬅️ 이전: 13.2 예약 및 정기구동 (cron)     🏠 분류 목차     다음 ➡️

13.2 리눅스의 잠들지 않는 마법 시간 요정, Cron (크론)

리눅스 서버 관리는 매일 새벽 3시에 데이터베이스를 압축 백업하거나, 월말마다 휴지통(Log)을 비워주는 등 반복적이고 정기적인 백그라운드 업무가 필수적입니다. 이 일을 엔지니어가 매일 새벽 3시마다 알람을 맞추고 깨서 수동으로 칠 수는 없기 때문에, 운영체제는 시간을 감시하는 스케줄링 데몬을 제공합니다.

Cron 요정 데몬의 예약 구조도

동작 원리: 사용자가 crontab 이라는 지시서 텍스트 파일에 “언제, 어떤 쉘 스크립트를 실행해라” 라고 적어두고 자러 가면, 백그라운드에서 죽지 않고 시계만 쳐다보고 앉아있는 cron 데몬 이 그 시간이 도달하는 정확한 순간에 벼락처럼 명령어 방아쇠를 당겨(Trigger) 줍니다.


1. Cron 작업 지시서 작성 문법

크론은 띄어쓰기를 공간으로 인식하는 5자리의 별표(*) 암호 시스템을 사용하여 시간을 미세 구조로 세팅합니다.

1.1 5개의 별(Star) 공식

* * * * * (분 / 시간 / 일 / 월 / 요일 순서)

위치 의미 범위 설명
첫 번째 * (Minute) 0 ~ 59 몇 분에 쏠까
두 번째 * 시간 (Hour) 0 ~ 23 몇 시에 쏠까 (24시간제)
세 번째 * (Day) 1 ~ 31 며칠 날 쏠까
네 번째 * (Month) 1 ~ 12 몇 월에 쏠까
다섯 번째 * 요일 (Weekday) 0 ~ 6 무슨 요일에 쏠까 (0:일, 1:월 … 6:토)

1.2 실무 세팅 예시 모음

  • 30 2 * * * /backup_db.sh: [매일 새벽 2시 30분] 에 백업 스크립트를 돌려라!
  • 0 9 1 * * /mail.sh: [매달 1일 아침 9시 정각] 에 월간 메일을 쏴라!
  • */10 * * * * /check.sh: [10분에 한 번씩 영원히 무한 반복] 해서 사이트 에러 헬스체크 해라!

2. [실습] 나의 첫 백그라운드 자동화 스케줄 등록

크론 지시서를 직접 열고, 오늘 1분마다 특정 텍스트 파일에 글씨를 쓰도록 세팅해보는 튜토리얼입니다.

실습 1. 나의 crontab 지시서 열기

# 내 계정 전용 crontab 파일을 엽니다. (최초 실행 시 에디터 번호를 고르라 하면 1(nano)을 칩니다)
crontab -e

실습 2. 시간 예약 명령 타이핑

맨 밑줄 공백으로 내려가서 아래와 같이 적어넣고 저장(Ctrl+O, Enter, Ctrl+X)합니다.

# 매분 매초(1분마다) 자동 실행하여 텍스트 누적 시키기
* * * * * echo "크론 요정이 1분마다 글씨를 남기고 있습니다!" >> /home/ubuntu/cron_test.txt

실습 3. 크론 등록 확인 및 결과 점검

# 내 지시서가 잘 꽂혀 있는지 리스트를 봅니다.
crontab -l

# 이제 아무것도 안하고 3분 정도 멍하니 기다린 뒤에 텍스트 파일이 생겼는지 열어봅니다!
cat /home/ubuntu/cron_test.txt


⬅️ 이전: 13.2 예약 및 정기구동 (cron)     🏠 분류 목차     다음 ➡️
서브목차