📌 Crontab 이란?

Crontab(Cron table)은 리눅스 및 유닉스 계열 운영체제에서 특정 시간에 주기적으로 작업을 실행하기 위해 사용하는 시간 기반 잡 스케줄러(Job Scheduler)입니다. 백업, 로그 정리, 주기적인 데이터 수집 등 반복적인 업무를 자동화하는 데 필수적인 도구입니다.


⚙️ 기본 문법

Crontab 설정은 5개의 시간 설정 필드와 실행할 명령어로 구성됩니다.

*  *  *  *  *  명령어(Command)
┬  ┬  ┬  ┬  ┬
│  │  │  │  └─ 요일 (0 - 6) (0: 일요일, 1: 월요일, ..., 6: 토요일)
│  │  │  └─ 월 (1 - 12)
│  │  └─ 일 (1 - 31)
│  └─ 시 (0 - 23)
└─ 분 (0 - 59)

특수 기호


🛠️ 주요 명령어

터미널에서 다음 명령어를 통해 크론탭을 관리할 수 있습니다.


💡 설정 예시

1. 매분마다 실행

* * * * * /path/to/script.sh

2. 매일 새벽 3시 30분에 실행

30 3 * * * /path/to/backup.sh

3. 평일(월-금) 오전 9시에만 실행

0 9 * * 1-5 /path/to/work-report.sh

4. 10분 간격으로 실행

*/10 * * * * /path/to/check-status.sh

🚀 스크립트 파일을 통한 일괄 등록

crontab -e를 통한 직접 편집 외에도, 파일에 설정 내용을 작성해두고 한 번에 등록하거나 쉘 스크립트를 통해 자동화할 수 있습니다.

1. 파일을 통한 덮어쓰기

설정 내용을 담은 텍스트 파일을 작성한 후, 해당 파일을 인자로 넘기면 크론탭 내용이 해당 파일로 교체됩니다.

# cron_jobs.txt 파일 내용으로 현재 크론탭 교체
crontab cron_jobs.txt

2. 기존 설정에 내용 추가하기 (Append)

기존 설정을 유지하면서 새로운 작업을 스크립트로 추가하고 싶을 때 유용합니다.

# 기존 리스트를 불러와서 새로운 줄을 추가한 뒤 다시 등록
(crontab -l ; echo "0 5 * * * /path/to/new-job.sh") | crontab -

3. 백업 및 복구

일괄 등록 작업 전에는 항상 현재 설정을 백업해두는 것이 좋습니다. ```bash

현재 설정 백업

crontab -l > my_cron_backup.txt

백업본으로 복구

crontab my_cron_backup.txt