본문 바로가기

백엔드

[Linux] Crontab으로 작업 스케쥴링 - Certbot 자동 갱신

Crontab

Crontab은 Linux에서 특정 작업을 특정 시간에 수행할 수 있도록 하는 작업 스케쥴러이다. 예를들어, Certbot과 같은 SSL 인증서는 3개월마다 갱신이 필요한데 이를 OS가 자동으로 처리할 수 있게 하는 것이 가능하다.

 

Crontab 편집

$ crontab -e

 

Crontab 리스팅

$ crontab -l

 

Crontab 수행 주기 설정

분-시간-일-월-요일 순으로 설정이 가능하다. 요일에서 0과 7은 일요일이고, 1~6이 월에서 토요일이다.

 

실제 사용 예시 - Certbot 자동 갱신

1. bin 디렉토리에 실행 스크립트 파일을 만든다.

$ cd /bin
$ vi letsencrypt.sh

2. 다음과 같이 내용을 설정

!/bin/sh
/etc/init.d/nginx stop
/usr/local/bin/certbot renew> /var/log/letsencrypt/le-renew.log
fuser -k 80/tcp
/etc/init.d/nginx start

3. 해당 스크립트 파일에 실행 권한을 부여한다.

$ chmod +x letsencrypt.sh

4. 크론탭을 편집 상태로 연다.

$ crontab -e

5. 주기 별로 수행할 명령을 입력한다.

0 15 2 * * letsencrypt.sh

2개월 마다 15일에 실행

 

6. 크론탭을 재실행한다.

$ service cron start