리눅스에서는 스케줄을 정해서 실행을 시키는 기능이 있습니다. crontab 이라는 기능인데 이 기능을 많이 사용 하시면 항상 주기적으로 실행 되는 작업을 편하게 사용할 수 있습니다.
이제 하나 씩 설명을 하도록 하겠습니다.
이게 기본적인 사용 방법의 설명입니다.
우선 기본적인 프로세스 확인 부터 알아 보도록 하겠습니다.
# ps -ef | grep crond
위 명령어로 확인 을 하면 위와 같이 /usr/sbin/crond 라고 실행 되고 있는걸 알 수 있습니다.
이제 스케줄 등록에 대한 부분을 알아 보도록 하겠습니다.
우선 기본 적인 파일은 /etc/crontab 입니다.
근데 여기에 보면은 권한이 있습니다. 이 파일에 쓰기 권한 이 있으면 사용이 가능 하지만 대 부분 많이 쓰는 방법은 crontab -e 로 사용 하여 스케줄을 등록 합니다.
# crontab -e
자 이제 crontab 등록을 할 때 기준을 알려 드리겠습니다.
우선 crontab 은 크게 6자리로 나눈다고 할 수 있습니다.
분 / 시간 / 일 / 월 / 요일 / 실행내용
이렇게 나눌 수 있습니다.
이제 시간설정에 대한 예시를 보도록 하겠습니다.
[예시]
0 5 * * * // 매일 5시 실행
5 * * * * // 매 시간 5분에 실행
* * * * * // 1분에 한번씩 실행
0 5 1 * * // 매달 1일 5시 실행
0 5 1,15 * * // 매달 1일, 15일 5시 실행
0 5,14 1 * * // 매달 1일 5시,14시 실행
0 5 * * 0,1 // 매주 일요일 월요일 5시 실행
0 */1 * * * // 1시간 마다 정각에 실행
자 위와 같이 사용 예시가 있습니다. 저 예시들을 조합 하셔서 필요하신 스케줄을 등록 하셔서 사용 하시면 될 것입니다.
그리고 5번째 자리의 요일에 대해서 알려 드리겠습니다.
크론텝 요일
0, 7 일요일 1 월요일 2 화요일 3 수요일 4목요일 5금요일 6 토요일
위요 같은 방법으로 사용이 가능 합니다. 또한 영어 약자로도 가능을 합니다.
자 위의 그림을 보면 분은 0-59 까지 시는 0-23 까지 참고로 시간은 12시 기준이 아닌 24시간 으로 표시 하셔야 합니다.
그리고 일은 1-31 까지 월은 1-12까지 또한 영어로 3글자 약자로도 표시 가능 합니다. 마지막으로 요일은 0-6 또는 영어 약자로도 가능합니다. 참고로 여담이지만 일요일이 0 또는 7 로 된 이유는 나라 별로 일주일의 시작을 다르게 보기 때문입니다.
스케줄의 로그를 남기는 방법에 대해서 알아 보도록 하겠습니다.
로깅
* * * * * /home/script/test.sh > /home/script/test.sh.log 2>&1
지속적으로 남길때
* * * * * /home/script/test.sh >> /home/script/test.sh.log 2>&1
로그 필요 없을 때
* * * * * /home/script/test.sh > /dev/null 2>&1
자 위와 같은 방법은 예시를 드렸습니다. 위 부분은 참고하여 사용 하시면 되겠습니다.
또한 crontab 은 중요한 스케줄 입니다. 그렇기 때문에 꼭 백업을 하시는 것을 추천 드립니다.
크론텝 백업
crontab -l > crontab_bak.txt
이와 같이 하면 텍스트 파일로 저장을 할 수 있습니다.
이걸 crontab을 활용 하여 스케줄로 설정 할 수 있습니다.
백업 크론탭
50 23 * * * crontab -l > crontab_bak.txt
위와 같이 사용 하시면 됩니다.
그리고 스케줄이 잘 돌 았나 로그를 확인 하 실수 있습니다.
Crontab 로그
/var/log/cron 저 경로의 파일을 여시면 로그를 확인 하 실수 있습니다.
# cat /var/log/cron
위와 같이 확인 을 하실 수 있습니다.
서버를 운용 하시면서 crontab은 정말 유용하게 사용을 하 실 수 있습니다.
이 부분은 꼭 알고 넘어 가시는 것이 좋을 것 입니다.
보시다가 궁금하신 명령어 사용법이 있으시면 댓글 남겨 주시면 제가 알려 드리도록 하겠습니다.
그리고 여러분의광고 클릭은 저에게 큰 도움이 됩니다~ 많은 클릭 부탁드립니다