리눅스에서 프로그램을 수행하다 보면 원하는 시간마다 또는 주기적으로 프로그램을 실행하거나 프로세스를 체크해야 할 일이 있는데요. 이런 경우에 유용하게 사용할 수 있는 기능이 바로 crontab(크론탭) 입니다.
윈도우즈의 스케쥴러와 비슷한 기능이라고 볼 수 있지만 윈도우즈에 비해서 작동에 대한 신뢰도가 매우 높고 사용법이 직관적이고 편리합니다. 그래서 이번 시간에는 리눅스에서 crontab(크론탭)을 사용하는 방법에 대해서 간단히 살펴 보려고 합니다.
목차 - 클릭하면 이동합니다.
크론탭 조회/등록/삭제
크론탭 조회
crontab -l
등록되어 있는 크론탭을 조회할 때 사용합니다.
크론탭 수정
crontab -e
크론탭을 등록하거나 이미 등록된 크론탭을 수정하거나 삭제할 때 사용합니다.
크론탭 삭제
crontab -r
전체 크론탭을 한번에 삭제할 때 사용합니다.
크론탭 문법
기본 문법
* * * * * 명령어
크론탭은 정해진 양식으로 등록해야 하며 각 위치마다 아래와 같이 역할이 부여되어 있습니다.
① 첫 번째 * : 분 (0~59)
② 두 번째 * : 시 (0~23)
③ 세 번째 * : 일 (1~31)
④ 네 번째 * : 월 (1~12)
⑤ 다섯 번째 * : 요일(0~6), 0:일요일, 1:월요일, 2:화요일, 3:수요일, 4:목요일, 5:금요일, 6:토요일
30 5 * * * /home/python/cron/monitoring.sh
위의 경우는 매일 오전 5시 30분에 스크립트를 수행하게 됩니다.
수행 주기 추가
0,30 5 * * * /home/python/cron/monitoring.sh
콤마(,)로 구분하면 실행 주기를 추가할 수 있습니다. 위의 경우는 매일 오전 5시 그리고 5시 30분에 스크립트를 수행합니다.
수행 구간 지정
0 5 * * 1-5 /home/python/cron/monitoring.sh
마이너스 기호(-)를 사용하면 수행 주기의 구간을 지정할 수 있습니다. 위의 경우는 월요일부터 금요일까지 오전 5시에 스크립트를 수행하게 됩니다.
수행 간격 지정
*/10 * * * /home/python/cron/monitoring.sh
슬래시(/) 기호를 사용하면 수행 간격을 지정할 수 있습니다. 위의 경우는 매 10분마다 스크립트를 실행하게 됩니다.
크론탭 로깅하기
크론탭은 해당 시간에 시스템이 수행하기 때문에 별도로 콘솔에 로그가 나오지 않습니다. 그래서 크론탭의 수행 결과를 확인하고 싶으면 별도로 로깅을 해야 합니다.
*/10 * * * /home/python/cron/monitoring.sh >> /home/python/logs/monitoring.log 2>&1
꺽쇄(>)를 이용하면 실행한 스크립트의 출력 결과를 파일로 저장하게 됩니다. 두개의 꺽쇄(>>)를 사용하면 log를 계속해서 붙여넣기 하며 한개의 꺽쇄(>)를 사용하면 매번 파일을 새로 덮어쓰게 됩니다.
마치며
리눅스에서 크론탭은 상당히 많이 사용되고 있으며 Tech&Fin에서 진행중인 비트코인 자동매매 프로그램도 리눅스 서버에서 돌리기 위해서 crontab을 사용하게 됩니다.
추후 리눅스 서버에서 비트코인 자동매매 프로그램을 crontab에 등록하는 방법을 통해 더 자세하게 알아볼 수 있도록 하겠습니다.
블로그를 구독하시면 소식을 조금 더 빨리 받아볼 수 있습니다. 감사합니다.
'코딩스토리 > 리눅스' 카테고리의 다른 글
리눅스 서버에 파이썬 3.9 설치하기 (3) | 2022.01.13 |
---|---|
리눅스 로그 관리하기 - logrotate (0) | 2022.01.12 |
리눅스 서버시간 및 타임존 확인 및 변경하기 (4) | 2022.01.07 |
SSH Key를 이용해서 SFTP로 서버에 접속하기 - Filezilla sFTP 프로그램 이용 (0) | 2021.12.02 |
리눅스 SSH Key 추가하여 사용자로 로그인하기 - 오라클 리눅스8 (6) | 2021.06.11 |
리눅스 사용자 계정 SUDO 권한 부여하기 - 오라클 리눅스8 (0) | 2021.06.11 |