반응형

<참조> https://jdm.kr/blog/2

<참조> https://hbase.tistory.com/304

리눅스 스케쥴링 crontab 사용법 (주기적 실행) 

글. 수알치 오상문 

리눅스에서 특정 일시에 주기적으로 명령을 실행하려면(스케쥴링) crontab 명령을 이용한다.

 

주석(설명문) 달기

#--------------------
# 이것은 설명문입니다. 
#--------------------

 

명령어 옵션 

 

crontab [-u 사용자id] 파일
crontab [-u 사용자id] {-l | -r | -e}
crontab -l : 예약 작업 리스트
crontab -e : 예약 작업 수정
crontab -r : 예약 작업 삭제

 

새로운 작업을 설정하려면 다음처럼 실행한다. 

$ crontab -e

그러면 새로운 편집창이 열린다(기본은 vi 에디터 모드). 여기에 새 작업을 설정하고 : 입력 후에 wq를 입력하여 저장한다. .

 

현재 Crontab 내용이 살펴보려면 다음처럼 실행한다(소문자 L). 

 

$ crontab -l

 

스케줄러를 삭제하려면 다음처럼 실행한다.

$ crontab -d

 

Crontab에 실행 명령 추가하려면 crontab -e 실행 후 내용을 입력하고 저장한다.

다음 예제는 실행 주기가 * * * * *인데 1분마다 실행하라는 것이다. 실행할 명령은 ls -al이다(현재 디렉터리 살펴보기).

* * * * * ls -al

 

실행 주기 설정

구조는 다음과 같다. 각 * 위치에 맞게 조건을 지정할 수 있다.

*         *        *       *        *
분(0-59)  시간(0-23)  일(1-31)  월(1-12)   요일(0-7)
요일 : 0 또는 7 = 일, 1 = 월, 2 = 화, 3 = 수, 4 = 목, 5 = 금, 6 = 토
  • 실행 주기와 명령은 한 줄에 설정해야 한다.
  • 주기 입력엔 * , - / 표기를 이용한다.

 

매분(1분 단위)마다 /home/sualchi/run.sh 실행

* * * * * /home/sualchi/run.sh

 

일요일 오전 0시 0분마다 /home/sualchi/run.sh 실행

0 0 * * 0 /home/sualchi/run.sh

 

매시간마다 0분, 20분, 40분에 /home/sualchi/run.sh 실행

0,20,40 * * * * /home/sualchi/run.sh

 

시간이 30~40분 범위가 되면 매분마다 /home/sualchi/run.sh 실행

30-40 1 * * * /home/sualchi/run.sh

 

10분 간격으로 반복해서 /home/sualchi/run.sh 실행

*/10 * * * * home/sualchi/run.sh

 

매달 14~15일 0시, 6시, 12시, 18시 시간대에 매 10분마다 실행


*/10 0,6,12,18 15-16 * * /home/sualchi/run.sh

 

로그 남기기 

* * * * * /home/sualchi/run.sh > /home/sualchi/run.sh.log 2>&1

[참고] 로그 안 남기기 : * * * * * /home/sualchi/run.sh > /dev/null 2>&1

 

Crontab 백업 파일 저장

다음 예제는 지정된 시간(매일 23시)마다 백업 파일(/home/bakup/crontab.bak)을 저장한다.

0 23 * * * crontab -l > /home/bakup/crontab.bak

 

반응형

+ Recent posts