프로젝트/한이음

crontab을 이용해 주기적으로 웹 페이지에 요청하기

명에 2021. 8. 1. 13:09

길고 길었던 nginx + crontab의 나날들이 끝났다.. 드디어 되는구나!


crontab을 이용하기 전 주기적으로 작업할 스크립트 만들기

리눅스 - 쉘 기반 스크립트를 짜봅시다. 나는 데이터가 중요한 게 아니라 요청이 중요했기 때문에 스크립트가 짧다.

#!/bin/bash

curl http://localhost:8080

nginx을 이용해 구동되고 있는 서버 포트가 8080이므로 해당 포트로 curl, get 명령을 보냄.
요청만 보내서 뭘 하나 싶으면.. 이전 포스팅을 참고해주세요.

crontab 설정

우선 크론탭을 이용하기 전에 깔려있는 지 확인하자. 만약 깔려있지 않다면 bash apt-get install cron을 입력해 깔면 된다.
크론탭이 깔렸다면 crontab -e 명령어를 이용해 크론탭 내용을 기록하러 이동한다.

만약 처음 크론탭을 실행하면 편집기를 고르라는 내용이 콘솔에 출력될 수 있다. 본인이 편한 편집기를 쓰자. 나는 vim을 이용했다.
크론탭에는 여러 주석이 있을텐데 주석은 건드리지 말고 아래에다 내용을 기록하자.

*(분 : 0 ~ 59) *(시 : 0 ~ 23) *(일 : day of month, 1 ~ 31) *(달 : 1 ~ 12) *(요일 : 0 ~ 7) 파일경로/실행할 스크립트 파일
이렇게 기록하면 된다.

예 : 30 12 7 10 2 curl.sh => 10월 7일 화요일 12시 30분에 curl.sh 스크립트를 실행하자.

몇 가지 주의할 사항이 있다.

  1. 파일 경로는 유저 폴더 내에 있어야 한다. 나는 home/유저명/스크립트파일로 실행했다.
  2. 스크립트 파일 복사를 하지 말자. 조금 번거롭더라도 편집기로 새 파일을 만들어 실행하자.
  3. chmod +x 파일이름으로 꼭 파일 실행 권한을 주자.

설정 후 해야할 것들

만약 권한 설정을 안했다면 chmod +x <script file name>으로 권한 설정을 한다.
crontab 설정 후 service cron restart 명령어로 크론 서비스 재시작을 한다.
모든 작업이 끝났다면 service cron status 명령어로 오류가 없는지 검토한다.