[Study] 크론탭(Crontab)

조혜인·2022년 8월 23일
0
post-thumbnail

📌 크론탭(Crontab)

Unix기반인 리눅스 시스템에는 예약된 작업을 주기적으로 실행시킬 수 있는 Job Scheduler cron이 있다. cron은 지정한 시간, 날짜 그리고 간격에 따라 주기적으로 예약된 작업들(job)을 실행시킨다. 예약된 작업은 주어진 일정에 주기적으로 실행하도록 규정해놓은 crontab 파일에 의해서 동작한다.

마찬가지로 MAC환경도 Unix기반이므로 크론탭을 사용하여 작업을 수행할 수 있다.

📌 크론탭의 주기결정

* * * * *
분 시간 일 월 요일
  • 크론탭은 5개의 *로 이루어져있다.
  • 각 필드마다 분(0~59), 시간(0~23), 일(1~31), 월(1~12), 요일(0~7) 의 값들을 가질 수 있다.
  • 요일에서 0과 7은 일요일이다. 1부터 월요일, 2는 화요일, ... , 6은 토요일이다.
  • 크론탭은 한 줄에 하나의 명령어만 써야한다. 두 줄로 나누어서는 사용할 수 없다.

다음은 JDM's Blog를 참고한 예제이다. (정리가 정말 잘 되어있다.)

매분 실행

  • 매 분마다 실행된다.
* * * * * /home/temp/script.sh

특정 시간 실행

  • 매주 금요일 오전 8시 30분에 script.sh를 실행한다.
30 8 * * 5 /home/temp/script.sh

반복 실행

  • 매일 매시간 0분, 20분, 40분에 script.sh를 실행한다.
0, 20, 40, * * * * /home/temp/script.sh

범위 실행

  • 매일 1시 0분부터 30분까지 매분 script.sh를 실행한다.
0-30 1 * * * /home/temp/script.sh

간격 실행

  • 매 10분마다 script.sh를 실행한다.
*/10 * * * * /home/temp/script.sh

조금 복잡하게 실행

  • 5일에서 6일까지 2시, 3시, 4시에 매 10분마다 script.sh를 실행한다.
*/10 2, 3, 4 5-6 * * /home/temp/script.sh

추가

  • 추가적으로 크론탭을 사용하여 작업할 때 해당 처리 내역을 로그로 남기고 싶을 때는 아래의 명령문이 도움이 될 것 같다.
* * * * * /home/temp/script.sh > home/temp/script.sh.log 2>&1

2>&1 : 2>(에러 표준출력) + &1(명령을 백그라운드에서 실행하며 표준출력)

📌 참고

profile
코딩은 역시 재밌군

0개의 댓글