티스토리 뷰
리눅스 크론탭은 리눅스 상에서 특정 시간때에 작업을 해야하는경우 사용합니다.
윈도우에는 스케줄러와 비슷합니다. 매 분마다 크론탭에서 확인후에 실행합니다.
크론탭 편집 ( crontab edit)
$ crontab -e
- 크론탭을 설정할 수 있는 명령어이며, vi 명령어와 비슷합니다.
크론탭 작업내역 출력 ( crontab list )
$ crontab -l
- cat 명령어와 같이 파일을 읽어서 표준출력으로 내용을 보여줍니다.
크론탭 삭제 ( crontab delete )
$ crontab -r
- 사용하실 일은 거의 없지만 삭제입니다. 삭제보나는 각 행 앞에 #으로 주석처리하시는게 좋습니다.
크론탭 주기 설명
* * * * *
분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-7)
- 각 별 위치에 따라 주기를 다르게 설정할수있습니다. 순서대로 분,시간,일,월,요일입니다.
- 일요일 0 , 월요일 1, 화요일 2, 수요일 3, 목요일 4, 금요일 5, 토요일 6, 일요일 7
ex) 매분 실행 * * * * * /home/script/test.sh
ex) 매주 월요일 5시 30분에 실행은 30 5 * * 1 실행명령문
ex) 반복 실행 매시간 0분, 20분, 40분 0,20,40 * * * * /home/script/test.sh
ex) 범위 실행 매일 1시 0분 부터 30분까지 매분 실행 0-30 1 * * * /home/script/test.sh
ex) 매 10분마다 실행 */10 * * * * /home/script/test.sh
ex) 5일에서 6일까지 2시,3시,4시에 매 10분마다 실행 */10 2,3,4 5-6 * * /home/script/test.sh
크론 로깅(cron logging)
* * * * * /home/script/test.sh > /home/script/test.sh.log 2>&1
- 정기적으로 작업을 처리하는경우, 로그를 남기고 싶을때 위와같이 작성하면 됩니다.
만약에 2>&1을 제거하면 쉘스크립트에서 표준출력내용만 나옵니다.
리눅스 특수문자출력문 정리는 다음에 하겠습니다.
너무 자주실행되고 또한 지속적으로 로깅이 되야하는 로그의 경우는 다음과 같이 사용하면 됩니다.
* * * * * /home/script/test.sh >> /home/script/test.sh.log 2>&1
그러나 로그가 과도하게 쌓이면 리눅스에게 무리가 갈수있으니 가끔씩 삭제 또는 비워주거나 새로운 파일을
만드는것도 하나의 방법입니다.
반대로 로그는 필요 없는 크론을 위해선 다음처럼 입력합니다
* * * * * /home/script/test.sh > /dev/null 2>&1
크론탭 백업(crontab backup)
혹시 crontab -r을 쓰거나 실수로 crontab 디렉토리를 날려버려서 기존의 크론탭 내역들이 날아갔을때를
대비하여 주기적으로 백업합시다.
crontab -l > /home/bak/crontab_bak.txt
크론탭에 매일 오후 11시 50분에 백업하면 좋겠지요.
50 23 * * * crontab -l > /home/bak/crontab_bak.txt
이 글을 작성하면서 크론탭에 대해서 확실히 알아서 좋네요.
'Linux' 카테고리의 다른 글
Unix/Linux 문자열 패턴 검색(grep) (0) | 2019.05.23 |
---|