시작

Crontab

작성일 2026.06.30 수정일 2026.07.01 조회 26

기본 정보

  • 명칭: Crontab
  • 영문명: Cron Table
  • 분류: 작업 스케줄러(Task Scheduler)
  • 실행 서비스: Cron
  • 주요 용도: 정기 작업 자동 실행
  • 지원 운영체제: Linux, Unix 계열
  • 관련 기술: Linux, Cron, Bash, Shell Script, Systemd

개요

Crontab은 Linux와 Unix 계열 운영체제에서 특정 명령어나 스크립트를 원하는 시간에 자동으로 실행하기 위한 스케줄 관리 도구이다.

백업, 로그 정리, 데이터 동기화, 데이터베이스 백업, 서버 점검, 파일 이동 등 반복적으로 수행해야 하는 작업을 자동화하는 데 사용된다.

Crontab은 cron 서비스가 실행하며, 시스템 관리자뿐 아니라 일반 사용자도 자신의 작업을 예약할 수 있다.


동작 구조

사용자

↓

Crontab 등록

↓

Cron Daemon

↓

예약 시간 확인

↓

명령 실행

↓

작업 완료

Cron 동작 과정

시간 확인

↓

예약 작업 검색

↓

조건 일치

↓

명령 실행

↓

로그 기록

Crontab 문법

* * * * * command
│ │ │ │ │
│ │ │ │ └── 요일 (0~7)
│ │ │ └──── 월 (1~12)
│ │ └────── 일 (1~31)
│ └──────── 시간 (0~23)
└────────── 분 (0~59)

각 필드 의미

위치의미범위
1분(Minute)0~59
2시(Hour)0~23
3일(Day)1~31
4월(Month)1~12
5요일(Weekday)0~7 (0,7=일요일)

Crontab 편집

crontab -e

현재 사용자의 Crontab을 편집한다.


Crontab 목록 보기

crontab -l

등록된 작업을 확인한다.


Crontab 삭제

crontab -r

⚠️ 모든 예약 작업이 삭제되므로 주의해야 한다.


대표 예제

매일 새벽 3시

0 3 * * * /home/backup.sh

매시간 실행

0 * * * * /home/check.sh

5분마다 실행

*/5 * * * * /home/update.sh

10분마다 실행

*/10 * * * * php /var/www/html/cron.php

매주 월요일 오전 9시

0 9 * * 1 /home/report.sh

매월 1일 자정

0 0 1 * * /home/monthly.sh

PHP 실행 예시

*/5 * * * * /usr/bin/php /var/www/html/cron.php

PHP 스크립트를 5분마다 실행한다.


Python 실행 예시

0 * * * * /usr/bin/python3 /home/app/main.py

매시간 Python 프로그램을 실행한다.


Bash 실행 예시

30 2 * * * /home/scripts/backup.sh

매일 오전 2시 30분에 실행된다.


로그 저장

0 3 * * * /home/backup.sh >> /var/log/backup.log 2>&1
기호의미
>>로그 이어쓰기
2>&1오류 로그도 함께 저장

출력 버리기

*/5 * * * * /home/update.sh > /dev/null 2>&1

로그를 남기지 않는다.


실행 권한

스크립트는 실행 권한이 필요하다.

chmod +x backup.sh

Cron 서비스 확인

Ubuntu

sudo systemctl status cron

Rocky Linux

sudo systemctl status crond

Cron 서비스 시작

Ubuntu

sudo systemctl start cron

자동 시작

sudo systemctl enable cron

시간 지정 특수문자

기호의미
*모든 값
,여러 값
-범위
/간격
*/55분마다

자주 사용하는 예약

표현의미
* * * * *매분
*/5 * * * *5분마다
0 * * * *매시간
0 0 * * *매일 자정
0 3 * * *매일 새벽 3시
0 0 * * 0매주 일요일
0 0 1 * *매월 1일

Crontab과 Systemd Timer 비교

CrontabSystemd Timer
설정 간단설정 복잡
대부분 서버에서 사용최신 Linux 권장
시간 기반 실행이벤트 기반 가능
범용성 높음세밀한 제어 가능

장점

  • 자동화 가능
  • 설정이 간단함
  • 시스템 부담이 적음
  • 대부분의 Linux 지원
  • 유지보수가 쉬움

단점

  • 초 단위 실행 불가
  • 실행 환경(PATH)이 제한될 수 있음
  • 작업 실패 시 별도 알림 필요
  • 로그 관리가 필요함

실무 메모

실무에서는 다음과 같은 방식이 권장된다.

  • 절대 경로 사용
  • 실행 권한 확인
  • 로그 파일 기록
  • 오류 로그 분리
  • PATH 환경 변수 확인
  • 실행 시간을 겹치지 않도록 설계
  • 중복 실행 방지(Lock File) 적용
  • 백업 작업은 새벽 시간 사용
  • 작업 완료 여부 모니터링
  • 중요 작업은 알림 시스템과 연동

Crontab과 함께 사용하는 기술


대표 활용 사례

  • 데이터베이스 백업
  • 로그 삭제
  • AWS S3 파일 이동
  • 이미지 변환
  • 캐시 삭제
  • 크롤링
  • API 데이터 수집
  • 서버 점검

관련 문서


출처

  • Linux Man Pages (crontab)
  • Ubuntu Server Guide
  • Cron 공식 문서