오늘은 리눅스 크론탭에 대해 알아볼까 합니다. 음, 윈도우에서는 스케줄러와 비슷하다고 보면 되겠네요.
"특정 시간에 특정 작업을 해야한다."
라고 한다면 크론탭을 사용해 편하게 리눅스를 사용하실 수 있습니다.
- 프로세스 예약 데몬
- 리눅스용 작업스케줄러
- 특정시간에 명령어가 수행되도록 등록가능
1. 크론탭 기본 (crontab basic)
일단 기본이 되는 크론탭 사용법을 한 번 볼까요. 리눅스 쉘에서 다음처럼 입력합니다.
$ crontab -e
그러면 뭔가 편집할 수 있는 곳이 로딩됩니다. 이곳이 바로 크론탭을 설정할 수 있는 장소이죠. 여기에 각종 크론탭 명령어를 입력후 콜론(:) 입력 후에 wq 를 입력해 크론탭을 갱신시킵시다.
반대로 현재 크론탭에 어떤 내용이 들어있는지 보려면 다음처럼 입력하세요.
$ crontab -l
그러면 cat 명령어로 파일을 읽어들인 것처럼 표준 출력으로 크론탭 내용이 나오게 됩니다. 그런데 만약(거의 없겠지만) 크론탭을 지우고 싶다면?
리눅스 쉘에 다음처럼 입력합니다.
$ crontab -r
이렇게까지 하면 크론탭의 기본 설정 및 확인, 삭제에 대해 배운 것입니다. 그러면 실제로 크론탭에 크론 하나를 예제로 등록 해봅시다.
다음처럼 crontab -e 입력 후 다음과 같은 내용을 입력합시다. 저장은 vi 처럼 콜론 (:) 입력 후 wq 로 갱신시켜주면 됩니다.
* * * * * ls -al
별이 다섯개나 있습니다. 그리고 뒤에는 명령어가 적혀 있네요. 이게 기본 사용법입니다. 물론 쉘스크립트 뿐만 아니라 리눅스 커맨드도 사용할 수 있습니다.여기서는 쉘스크립트를 사용하는 방법으로 설명하고 있습니다.
별이 다섯개 있는 경우엔 "매분마다 실행" 하는겁니다. 별이 지칭하는 것이 무엇인지 자세히 살펴봅시다. * 그 전에 위에 입력했던 크론잡은 다시 지우시기 바랍니다.
2. 주기 결정
* * * * * 분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-7)
각 별 위치에 따라 주기를 다르게 설정 할 수 있습니다. 순서대로 분-시간-일-월-요일 순입니다. 그리고 괄호 안의 숫자 범위 내로 별 대신 입력 할 수 있습니다.
요일에서 0과 7은 일요일입니다. 1부터 월요일이고 6이 토요일입니다.
3. 주기별 예제
3.1. 매분 실행
# 매분 test.sh 실행
* * * * * /home/script/test.sh
3.2. 특정 시간 실행
# 매주 금요일 오전 5시 45분에 test.sh 를 실행
45 5 * * 5 /home/script/test.sh
3.3. 반복 실행
# 매일 매시간 0분, 20분, 40분에 test.sh 를 실행
0,20,40 * * * * /home/script/test.sh
3.4. 범위 실행
# 매일 1시 0분부터 30분까지 매분 tesh.sh 를 실행
0-30 1 * * * /home/script/test.sh
3.5. 간격 실행
# 매 10분마다 test.sh 를 실행
*/10 * * * * /home/script/test.sh
3.6. 조금 복잡하게 실행
# 5일에서 6일까지 2시,3시,4시에 매 10분마다 test.sh 를 실행
*/10 2,3,4 5-6 * * /home/script/test.sh
주기 입력 방법엔 * , - / 을 이용하는 방법이 있습니다. 위에서 보셨듯이 각각의 특수기호가 하는 기능이 다르고 조합을 어떻게 하느냐에 따라 입맛대로 주기를 설정 할 수 있습니다.
4. 크론 사용 팁
4.1. 한 줄에 하나의 명령만 씁시다.
# 잘못된 예
* * * 5 5
/home/script/test.sh
# 잘된 예
* * * 5 5 /home/script/test.sh
4.2. 주석을 달아봅시다.
# 주석 #
#--------------------#
# 이것은 주석입니다. #
#--------------------#
# 을 입력해서 그 뒤로 나오는 모든 문자를 주석 처리할 수 있습니다.
출처
잘 정리된 사이트들 참고해주세요.
1순위 https://jhnyang.tistory.com/68
3순위 https://pung77.tistory.com/10
'Linux' 카테고리의 다른 글
리눅스 grep 명령어 사용법 (0) | 2022.07.29 |
---|---|
리눅스 파일 찾기, 파일속 문자열 찾기 (0) | 2020.06.20 |
쉘 조건문 / 쉘 if ... else (0) | 2020.06.20 |
쉘 스크립트 한 줄 주석 / 여러 줄 주석 (0) | 2020.06.20 |
리눅스 서버 점검시 유용한 명령들 (0) | 2020.06.20 |
댓글