DevOps/Linux

리눅스 - cron 사용법

알로그 2021. 4. 18. 23:08
반응형

cron은 유닉스 계열 운영체제의 잡 스케줄러로 작업을 고정된 시간, 날짜, 간격에 주기적으로 실행할 수 있도록 하는 소프트웨어 유틸리티이다.

 

crontab(cron table) 파일에 의해 구동되며 커맨드창에서 'crontab -e'를 입력하면 해당 파일에 값을 입력할 수 있다.

가장 아래로 내려보면 m h dom mon dow command라고 표시되어 있는데, 각각 의미하는 바는 다음과 같다

  • min(분: 0-59)
  • hour(시: 0-23)
  • day of month(일: 1-31)
  • month(월: 1-12)
  • day of week(요일: 0-6)

 

위의 표현식을 통해 적당한 커맨드를 입력해보자.

입력한 설정값은 'crontab -l'로 확인할 수 있다.

 

위에서 수행한 명령어를 tail -f 옵션을 통해 확인해보면 정상적으로 1분마다 수행되고 있음을 볼 수 있다.

 

추가로 정기적인 작업을 수행하다가 에러가 발생할 때 놓치는 경우가 없도록 표준에러를 표준출력으로 redirection 시킬 수 있도록 굵은색 부분을 추가해주자

 

*/1 * * * * date >> date.log 2>&1

 

 

 

 

Tips)

  • 와일드카드(*)는 all을 의미
  • 슬래쉬(/)는 값 증가에 사용됨 (분 위치에 0/5로 사용하면 5분마다 수행)
  • 물음표(?)는 특정 값이 없을 때 사용됨(값 상관없음)
  • 하이픈(-)은 범위를 지정할 때 사용
  • L은 마지막 값을 의미, 날짜와 요일에 사용 가능

 

 

Example)

Expression Means
0 0 12 * * * 매일 12시
0 0 0/1 * * * 1시간 마다 
0 0/5 12 * * * 12시부터 13시 사이에 5분 간격 실행
0 0/5 12,18 * * * 12시부터 13시 사이에 5분 간격 실행, 18시부터 19시 사이에 5분 간격 실행
0 0/5 12-18 * * * 12시부터 18시 사이에 5분 간격 실행
0 0 0 1 * * 매달 1일 0시 실행

 

 

 

Reference:

ko.wikipedia.org/wiki/Cron

docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm

반응형