지식 채우기/업무 지식

[리눅스/Linux] 크론탭(Crontab) 완벽 가이드: 자동화 스케줄링 설정 방법

아하 모먼트 2025. 3. 25. 14:20
반응형

크론탭(Crontab)은 리눅스(Linux) 및 유닉스(Unix) 기반 시스템에서 특정 시간에 자동으로 작업을 실행하도록 예약하는 도구입니다. 실무에서도 서버 운영, 데이터 백업, 로그 정리, 스크립트 실행 등 다양한 자동화 작업에 활용됩니다. 이 글에서는 크론탭의 기본 개념부터 시간 설정 방법, 실전 예제까지 정리해 보려고 합니다.

 

1. 크론탭의 기본구조

* * * * *
| | | | |
| | | | └── 요일 (0-7) (0과 7은 일요일)
| | | └──── 월 (1-12)
| | └────── 일 (1-31)
| └──────── 시 (0-23)
└────────── 분 (0-59)

 

크론탭은 특정한 작업을 특정한 시기에 반복하기 위해서 사용하는데, 위와 같은 시간 패턴을 사용할 수 있습니다. 자세한 사용 방법은 뒤에서 알아보도록 합시다.

 

 

2. 크론탭의 연산자

* : 모든 값 (예시: * * * * * -> 매일 매분마다 실행)
, : 여러 개의 값을 지정 (예시: 0 9,12,15 * * * -> 매일 9시, 12시, 15시에 실행)
- : 범위를 지정 (예시: 0 9-17 * * * -> 매일 9시부터 17시까지 정시에 실행)
/ : 주기적으로 실행 (예시: */15 * * * * -> 15분마다 실행)

 

크론탭에서 시간 패턴을 지정할 때 사용되는 연산자는 위에 4가지가 존재합니다. 다양한 사용 예시에 대해서 알아보도록 합시다.

 

 

3. 크론탭 사용예시

(1) 매일 정오와 오후 4시에 script.sh 실행

0 12,16 * * * /path/script.sh

 

"," 연산자를 이용하여 매일 정오(12시)와 오후 4시(16시)에 script.sh가 실행될 수 있도록 설정합니다.

 

(2) 매주 월요일 오전 8시에 script.sh 실행

0 8 * * 1 /path/script.sh

 

월요일(1)에 오전 8시 0분에 script.sh가 자동 실행될 수 있도록 설정합니다.

 

(3) 매일 5분마다 script.sh 실행

*/5 * * * * /path/script.sh

 

매일 5분마다(*/5) script.sh가 자동으로 실행될 수 있도록 설정합니다.

 

(4) 매월 1일 자정에 script.sh 실행

0 0 1 * * /path/script.sh

 

"0 0 1"로 0분 0시 1일마다 script.sh가 실행될 수 있도록 설정합니다.

 

(5) 월, 수, 금 오후 10시에 script.sh 실행

0 22 * * 1,3,5 /path/script.sh

 

월(1), 수(3), 금(5) 오후 10시(22)에 script.sh가 실행될 수 있도록 설정합니다.

 

 

4. 크론탭 설정 및 관리 방법

(1) 크론탭 편집

>> crontab -e

 

위 명령어를 통해서 vi 편집기로 crontab을 수정할 수 있습니다.

>> vi /etc/crontab

 

직접 vi 편집기 명령어를 통해서 crontab 파일을 수정하셔도 무방합니다.

 

(2) 크론탭 목록 확인

>> crontab -l

 

지금까지 등록하고, 현재 관리되고 있는 크롭탭 목록을 확인하실 수 있습니다.

 

(3) 크론탭 삭제

>> crontab -r

 

지금까지 설정한 모든 크론탭을 삭제하고 싶으신 경우 사용하면 됩니다. 크론탭 중에서 일부만 삭제하고 싶은 경우에는 크론탭 편집 명령어를 통해서 crontab 파일을 직접 수정해 주시면 됩니다.

 

 

5. 크론탭 사용 주의사항

  1. 절대 경로 사용
    • 크론탭 설정 시에 사용되는 명령어는 반드시 절대 경로로 입력해야 합니다.
  2. 환경 변수 설정
    • 크론탭에서는 기본적으로 /bin/sh를 사용하기 때문에 실행할 스크립트에 적절한 환경 변수를 설정하는 것이 필요합니다.
  3. 출력 로그 저장
    • 크론 작업의 오류를 디버깅하기 위해서 로그 파일을 저장하는 것이 좋습니다.
  4. 사용자 권한 확인
    • 루트 권한이 필요한 작업에서는 sudo를 사용해야 할 수 있기 때문에 실행 권한을 확인하시길 바랍니다.

 

크론탭은 리눅스 시스템에서 자동화 작업을 수행하는 강력한 도구입니다. 이를 활용하면 정기적인 백업, 데이터 정리, 모니터링 스크립트 실행 등을 손쉽게 설정할 수 있습니다. 위 내용을 바탕으로 자신만의 크론 스케줄을 만들어 보세요!

반응형