IT 알아보기

리눅스 크론탭 crontab 알아보기

3학년 1반 민군 2020. 12. 1. 16:01

오늘은 지난번 알아본 로그정리법에서 언급한 crontab 자동화에 대해 알아보겠습니다.

https://puremin91.tistory.com/14

 

Oracle DBA의 alert.log로그관리법 알아보자

안녕하세요 오늘은 DBA라면 일상적으로 확인하는 로그들에 대해 관리하는 방법에 대해 소개하려 합니다. 오늘 얘기할 로그(log)의 개념은 어떤 행위가 발생함에 따라 기록을 남기는 파일을 말합

puremin91.tistory.com

특정시간에 특정작업을 매번해야하는 경우 이를 자동화하여 관리하는것이 효과적입니다.

 

대부분 백업이나 로그등을 관리하기위해 사용합니다.

 

리눅스 서버의경우 crontab, 윈도우의 스케쥴러와 같습니다.

더보기

crontab -e : 크론탭을 설정할 수 있음. 신규생성

                설정 후  :wq로 저장

crontab -l : 저장된 크론탭의 내용 출력

crontab -r : 크론탭 삭제

crontab 주기설정

* * * * * /home/scripts/test.sh 라고 저장된 crontab이 있다고 가정하겠습니다.

이는 매분마다 test.sh가 실행됩니다.

더보기

*         *         *         *          *

분(0-59) 시(0-23) 일(1-31) 월(1-12) 요(0-7)

분-시-일-월-요일 순으로 나타내며 요일은 1/월, 2/화, 3/수, 4/목, 5/금, 6/토 0,7/일

아래는 위의 내용으로 예시를 보여드리도록 하겠습니다.

더보기

# 매분 test.sh 실행

* * * * * /home/script/test.sh

 

# 특정시간 - 매주 금요일 오전 5시 45분에 test.sh 를 실행

45 5 * * 5 /home/script/test.sh

 

# 반복실행 - 매일 매시간 0분, 20분, 40분에 test.sh 를 실행

0,20,40 * * * * /home/script/test.sh

 

# 범위실행 - 매일 1시 0분부터 30분까지 매분 tesh.sh 를 실행

0-30 1 * * * /home/script/test.sh

 

# 간격실행 - 매 10분마다 test.sh 를 실행

*/10 * * * * /home/script/test.sh

 

# 5일에서 6일까지 2시,3시,4시에 매 10분마다 test.sh 를 실행

*/10 2,3,4 5-6 * * /home/script/test.sh

이와같이 원하는 시간 또는 분마다 적용이 가능합니다.

 

쉘스크립트를 테스트 후 크론탭을 저장하는것이 원칙입니다.

 

잘 실행되고 있는 크론탭이지만 이를 로그로 남겨야하는 경우도 있습니다.

더보기

crontab logging : 크론탭을 사용해서 정기적으로 작업을 처리할 때 해당 내용에 대한 로그를 남길때 사용

* * * * * /home/script/test.sh > /home/script/test.sh.log 2>&1

-> 생성된 로그파일을 최신버전만 남기도 싶다면 > 기호를 사용한다.

 

* * * * * /home/script/test.sh >> /home/script/test.sh.log 2>&1  

-> 지난번 생성된 로그파일 아래에 누적해서로그를 남기고 싶다면 >> 기호를 사용한다.

이와 같이 crontab에 대해 테스트를 진행할 수 있도 실제 적용하는 것을 알아보았습니다.

 

crontab설정 후 진행되지 않는 경우가 있는데

 

service crond restart 명령 후 cron데몬을 재시작하여 정상동작하도록 만들어줍니다.