본문 바로가기

리눅스

리눅스 기본 명령어 #crontab

리눅스에서는 스케줄을 정해서 실행을 시키는 기능이 있습니다. 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은 정말 유용하게 사용을 하 실 수 있습니다. 

이 부분은 꼭 알고 넘어 가시는 것이 좋을 것 입니다. 

 

보시다가 궁금하신 명령어 사용법이 있으시면 댓글 남겨 주시면 제가 알려 드리도록 하겠습니다.

그리고 여러분의광고 클릭은 저에게 큰 도움이 됩니다~ 많은 클릭 부탁드립니다

 

'리눅스' 카테고리의 다른 글

리눅스 CPU 정보 및 사용률 확인  (0) 2022.06.17
Linux 기본 명령어 #Hosts  (0) 2022.06.11
리눅스 기초명령어 find # 예시  (0) 2022.05.29
리눅스 기본 명령어 find  (0) 2022.05.25
리눅스 기본명령어(chmod, chown)  (0) 2022.05.22