오늘은 리눅스에 있는 Crontab 에 대해서 사용하는 방법을 설명드리겠습니다.
먼저 crontab 이란 특정 시간에 주기적으로 그 명령, 스크립트 등을 실행할때 정말 많이 사용하는게 crontab 입니다. 예를 들어 백업 스크립트, 특정 Node 서버 재시작, 인증서 갱신 등 과닐자가 수동으로 명령어를 입력하여 해결할 수도 있지만, 그렇게 되며 매번 명령을 입력할때마다 서버에 접속하여 일일이 입력해줘야 하는 불편함이 생깁니다. 이럴때 crontab 을 사용하시면 됩니다.
Crontab 예시
입력 방법은 아래와 같습니다.
* * * * * *
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ │
│ │ │ │ │ └ day of week (0 - 7) (0 or 7 is Sun)
│ │ │ │ └───── month (1 - 12)
│ │ │ └────────── day of month (1 - 31)
│ │ └─────────────── hour (0 - 23)
│ └──────────────────── minute (0 - 59)
└───────────────────────── second (0 - 59, OPTIONAL)
* * * * * 분 (0-59) 시 (0-23) 일 (1-31) 월 (1-12) 요일(0-7)
매 분마다 /etc/backup/backup.sh 스크립트를 실행하고 싶을땐?
* * * * * /etc/backup/backup.sh # 매 분마다 /backup.sh 스크립트 실행
반복해서 /etc/backup/backup.sh 스크립트를 실행하고 싶을땐?
10,30,50 * * * * /etc/backup/backup.sh # 매일 10분, 30분, 50분 간격으로 /backup.sh 스크립트 실행
아예 범위를 잡아서 그 시간동안 계속 실행하게 할수도 있습니다.
30-40 1 * * * /etc/backup/backup.sh # 매일 30분~40분까지 매 분마다 /backup.sh 실행
그리고 크론탭(crontab)을 사용할때는 한 줄에 한 명령어만 입력해야 합니다.
30-40 1 * * * /etc/backup/backup.sh # 잘 입력한 예 30-40 1 * * * /etc/backup/backup.sh # 잘못 입력한 예
저는 Ubuntu 20.04 LTS 서버에서 했지만 다른 리눅스에서도 사용이 가능하니 참고하시면 될 거 같습니다.
터미널을 열어 줍니다.
![](https://i0.wp.com/blog.ifixcomputer.org/wp-content/uploads/2021/04/image-4.png?resize=720%2C419&ssl=1)
터미널에 sudo crontab -e 를 입력하여 크론 탭을 열어줍니다.
![](https://i0.wp.com/blog.ifixcomputer.org/wp-content/uploads/2021/04/image-5.png?resize=720%2C419&ssl=1)
이렇게 어떤 에티터로 수정할건지 묻습니다. 저는 nano 편집기로 수정하겠습니다.
1번을 클릭합니다.
![](https://i0.wp.com/blog.ifixcomputer.org/wp-content/uploads/2021/04/image-6.png?resize=720%2C729&ssl=1)
처음 구성 시 위와 같이 설명이 나오는데 필요없으니 깔금하게 지워주겠습니다.
![](https://i0.wp.com/blog.ifixcomputer.org/wp-content/uploads/2021/04/image-7.png?resize=720%2C729&ssl=1)
저는 let’sencrypt 인증서를 사용중이라
매주 04시 5분에 let’sencrypt 인증서를 갱신하는 명령어와
매주 04시 5분에 엔진엑스 서버를 재시작 하는 명령어,
매일 2시 10분에 웹파일과 DB를 백업하는 스크립트. 이렇게 3가지를 등록시키겠습니다.
![](https://i0.wp.com/blog.ifixcomputer.org/wp-content/uploads/2021/04/image-10.png?resize=720%2C574&ssl=1)
요렇게 입력하고 ctrl + s를 눌러 빠져나옵니다.
그리고 crontab을 재시작 해줍니다 (재시작 하지 않으면 등록한 명령어들이 작동하지 않습니다 반드시 등록후에 재시작 해주셔야 합니다)
sudo cron restart
![](https://i0.wp.com/blog.ifixcomputer.org/wp-content/uploads/2021/04/image-11.png?resize=720%2C430&ssl=1)
위처럼 [OK] 문가가 나오면 성공한 것입니다! 이제 sudo crontabl -l 을 입력하여 재대로 등록됬는지 봅시다.
![](https://i0.wp.com/blog.ifixcomputer.org/wp-content/uploads/2021/04/image-12.png?resize=720%2C430&ssl=1)
스케줄러에 정상적으로 등록된 모습입니다. 이런식으로 매주, 매일, 매달 사람이 입력할 명령어 또는 스크립트 실행을 크론탭에 등록해 놓으면 아주 편리해 질 겁니다!
참고했던 글 : 위키백과
NGINX 에서 인증서 발급, crontab 이용해서 매주 인증서 갱신 방법
댓글에 피드백, 궁금하신것 모두 환영합니다. 감사합니다!
[…] 크론탭을 이용하여 매주, 매일, 매달 자동으로 실행하게 만들기! […]