IT정보사전

[Linux] crontab(크론탭) 작업 스케줄러 사용법 본문

웹 프로그래밍

[Linux] crontab(크론탭) 작업 스케줄러 사용법

작은나무0530 2019. 1. 29. 11:17
728x90
반응형

안녕하세요~작은나무입니다!!

프로그래밍 개발시에 작업 스케줄러를 등록 해야할때가 있습니다.

주기적으로 특정작업을 실행해야 할 경우 (DB삭제, 통계적재 등) 아주 유용하게 사용할 수 있는 crontab에 대해 알아보고자 합니다.

C#이나 JAVA로 많이들 사용하시는 작업 스케줄러로 Quartz를 이용할 수도 있는대요

cron의 경우는 Linux 운영체제에 기본으로 설치되어 있어 바로 이용할 수 있고, 간단하게 특정작업을 실행 할 수 있습니다.
익숙하게 사용하지 못하기 때문에 정리를 해두면 나중에 유용하게 쓰이지 않을까 생각하여 정리해보려 합니다.

1. crontab이란?
crontab은 원하는 시간에 특정 작업을 실행하게 하는 텍스트 파일입니다. 이 crontab에 작성된 파일을 찾아서 cron이라는 시스템의 데몬이 작성된 일정대로 작업을 실행하게 됩니다. 주기적이고 반복적인 작업에 많이 사용합니다.

crond가 실행되고 있는지 확인하려면 다음과 같이 확인할 수 있습니다.

 ps -ef | grep crond


crontab의 작업 목록 확인 : 등록되어 있는 crontab 목록이 출력된다.

 crontab -l


crontab 편집 : 텍스트 편집기가 실행되고 에디터를 통해 설정을 변경 할 수 있다.
편집을 위해서는 root 권한이 필요합니다. 만약 root권한이 없다면 sudo를 붙여주면 된다. (sudo crontab -e)
수정 후 wq(저장하고 나가기)를 입력하고 빠져나오면 바로 적용이 됩니다. (q!는 저장하지 않고 나오기)

 crontab -e

※ crontab 파일이 없다면 새로 만듭니다.

crontab 삭제 : 예약된 작업이 모두 삭제 됩니다.

 crontab -r


2. 작업 스케줄 설정하기
작업 스케줄의 설정 형식은 minute(분) hour(시간) day(일) month(월) weekday(요일)로 설정한다.

 * * * * * 명령어


- minute(분) : 0 ~ 59
- hour(시간) : 0 ~ 23
- day(일) : 1 ~ 31
- month(월) : 1 ~ 12
- weekday(요일) : 0 ~ 7 (0과 7은 일요일, 1(월요일) ~ 6(토요일)


3. 작업 스케줄 예제
crontab을 작성할때는 줄바꿈이 들어가면 안됩니다.

1분 마다 실행

 * * * * * sh /root/test/test.sh


30분 마다 실행

 */30 * * * * sh /root/test/test.sh


매일 4시 30분 마다 실행

 30 4 * * * sh /root/test/test.sh


매월 1일 2시 0분에 실행

 0 2 1 * * sh /root/test/test.sh


매년 1월 1일 2시 0분에 실행

 0 2 1 1 * sh /root/test/test.sh


매주 월요일 0시 0분에 실행

 0 0 * * 1 sh /root/test/test.sh


728x90
반응형
그리드형
Comments