Linux

리눅스 크론탭(crontab) 자동화 프로그램 실행 방법, 주의 사항

jimmy_AI 2023. 11. 12. 12:03
반응형

Linux에서 특정 시각이나 시간 간격마다 특정 작업을 주기적으로 자동화하여

실행하려할 때, 유용한 방법인 크론탭(crontab)에 대하여

간략하게 사용 방법 및 유의 사항을 정리해보도록 하겠습니다.

 

 

1. Crontab 설정 진입 방법

리눅스에서 크론탭을 통하여 작업 목록을 설정하기 위해서는 다음 명령어를

터미널에 입력하면 됩니다.(crontab은 리눅스에 기본으로 설치되어 있습니다.)

crontab -e

 

그렇다면, 주석 처리된 설명 부분이 아래와 같이 등장할텐데,

가장 아래 부분에 실제 명령어를 입력하게 됩니다.

 

참고로, 첫 실행 시 에디터 종류를 몇 가지 보기 중에서 고르라는 메시지가 나올 수도 있는데,

이 경우는 편하신 에디터로 골라주시면 됩니다.(여기서는 nano 에디터 기준으로 설명합니다.)

 

 

2. Crontab 명령어 설정 방법

crontab에서는 5가지 항목을 통하여 원하는 실행 주기를 지정하게 됩니다.

(여기서 각 항목은 분, 시간, 날짜, 월, 요일을 의미합니다.)
예를 들면 */10 * * * *는 매 10분마다, 30 6 * * 1-2는 매 월,화 오전 6시 30분을 의미합니다.

 

상세한 크론탭 명령어 설정 방법은 아래 사이트를 참고해보시면 도움이 됩니다.

 

Crontab.guru - The cron schedule expression editor

 

crontab.guru

 

여기서 첫 번째로 유의할 점은, UTC +0을 기준으로 시각이 세팅되어 작동할 수 있다는 점입니다.

(한국 시간 기준으로는 9시간을 빼주어야 합니다.)

 

반응형

 

5칸의 시간 관련 항목 뒤에는 실행할 작업과 관련된 명령어를 지정해주시면 됩니다.

 

예를 들어, 특정 파이썬 파일을 10분만다 실행하려면 아래와 같이 명령어를 입력해볼 수 있습니다.

*/10 * * * * /usr/bin/python3 /home/path/main.py

 

주의할 점은, 크론탭은 특정 환경이나 경로를 기본으로 설정하지 않기에,
파이썬 소스 및 실행할 파일을 절대경로로 지정해주어야만 합니다.
(파이썬 소스 위치는 which python3 등으로 찾을 수 있으며, conda 환경 사용 시에는

원하는 가상 환경의 소스 위치를 기준으로 실행시켜야 합니다.)

 

한 줄에 원하는 명령어를 하나씩 적어주면 되는데,

여러 명령어를 입력한 예시는 아래와 같습니다.

 

이후, crontab 파일을 저장(nano의 경우에는 Ctrl + X -> Y -> Enter)하면

자동화 프로그램 실행 목록 지정이 완료됩니다.

 

 

3. Crontab 실행 확인 방법

예약된 크론탭 작업의 목록은 터미널에 해당 명령어를 통하여 쉽게 확인이 가능합니다.

crontab -l

 


그리고, 여기서 지정한 프로그램이 실제로 잘 작동되는지는 아래 명령어로 추적해주시면 됩니다.

service cron status

 

물론, 프로그램 실행 로그를 파일로 직접 남겨서 확인하는 방법도 가능하며,

크론탭 실행 환경은 실제 실행 시와 차이가 다소 있기에 정상 실행 여부에 검증이 필요합니다.