기타 툴

Crontab 사용법

Julie825 2022. 10. 29. 01:29

Cron이란?

cron, crond, crontab 모두 리눅스의 기본 스케줄러이다. Spring과 관련된 batch scheduler에는 Spring batch, Quartz 등이 있다.

 

사용 방식

$ crontab -e 	#nano 편집기로 이동
$ crontab -l 	#crontab 쉘 확인
$ crontab -r 	#crontab 쉘 삭제

* * * * * 명령어 형식으로 사용한다.

앞에서부터 분, 시, 일, 월, 요일(0~6)이다.

각 칸에 들어가는 기호의 의미는 아래와 같다.

    • : 모든 단위에 대해 실행 ex) 매분
  • /n : n으로 나눠지는 때 마다 실행 ex) 매 5분마다 실행.
  • n : n에 실행 ex) xx시 10분이 되면 실행
  • n1 - n2 : n1과 n2 구간에 실행, ex) 10-15라면 10, 11, 12, 13, 14, 15분에 실행
  • n1,n2,n3 … : 적혀있는 숫자가 되면 실행 ex) 10,15라면 10분, 15분에 실행

결과 출력 - redirection 활용

echo 등 표준 출력을 사용하고 싶을 수 있으나, 터미널에 해당 출력을 띄우는건 어렵다.

단 redirection 문법으로 로그를 기록할 수 있다.

# crontab -e 로 편집기에 접속
* * * * * ~/scripts/some.sh # 매분실행. 기록안됨
* * * * * ~/scripts/some.sh > ~/scripts/some.log # 최신 실행 결과가 some.log에 저장됨
* * * * * ~/scripts/some.sh >> ~/scripts/some.log # log가 누적됨