별로 사용할 일이 없어서 필요할때마다 사용법을 찾아야 하는 번거로움이 있어서 시간이 많이 낭비되는것 같아 한번 정리를 해 봅니다.

 

 

1. crontab 문법

 

crontab은 아래와 같은 형태로 작성을 합니다.

* * * * * python3 /home/copycoding/test.py

 

애스터리스크(*) 모양이 5개인대 처음부터 하나씩 의미하는 내용은 아래 표와 같습니다.

* * * * * xxxx.sh
(0~59) 시간(0~23) (1~31) (1~12) 요일(0~7) 실행할 명령어

 

요일이 맨 마지막에 위치하고 0:일요일, 1:월요일, 2:화요일.... 이렇게 해서 7:일요일 까지입니다.

*은 해당 항목의 조건에 모두 실행한다는 뜻입니다. (매분, 매시간, 매일, 매월, 모든요일.)

 

 

2. crontab 사용 방법

 

여기서 첫번째 분(minute) 사용방법을 알면 나머지도 동일한 패턴으로 사용 하면 됩니다.

* * * * * : 매일 매시간 매분 명령어 실행

*/10 * * * * : 매일 매시간 매10분마다(10,20,30,40,50,00) 명령어 실행

0-30/5 * * * * : 매일 매시간 0분에서 30분사이 5분마다 명령어 실행

1 * * * * : 매일 매시간 1분마다 명령어 실행

0-30 * * * * : 매일 매시간 0분부터 30분까지 매분 명령어 실행

1,5,7,9 * * * * : 매일 매시간 1, 5,7, 9분 명령어 실행

이렇게 분을 사용하듯 나머지도 유추해서 사용하면 됩니다.

 

명령어 뒤에 /dev/null을 붙여서 사용하는걸 보았을 텐데 그 의미는

* * * * * /home/copycoding/test.sh > /dev/null 2>&1

/dev/null 은 저장하지 않고 삭제한다는 의미로 로그를 남기지 않겠다는 표시고

2는 표준에러를 > 리다이렉트 해서 &1 = 표준출력 한다는 것으로

2>&1 이란 stderr 도 표준 출력 즉 /dev/null로 보내란 뜻입니다.

결론은 에러가 나도 표시하지 말고 삭제해서 안보이게 하라.

 

에러내용을 파일로 저장하려면 /dev/null 위치에 /usr/log/error.log와 같이 저장하려는 파일명을 적어주면 됩니다.

 

* * * * * /home/copycoding/test.sh > /home/copycoding/log/test.log

 

 

3. URL 실행 방법

 

crontab으로 URL을 실행하려면 curl을 사용하면 됩니다.

* * * * * /usr/bin/curl http://127.0.0.1:8080/test.do

 

만약 GET 방식으로 parameter들이 붙아야한다면 뒤에있는 param이 잘릴 수 있으니 URL을 따옴표러 묶어주면 됩니다.

* * * * * /usr/bin/curl “http://127.0.0.1:8080/test.do?id=koi8&name=copycoding”

 

 

4 crontab 편집

 

실제 crontab을 작성하고 관리하는 명령어들 입니다. 콘솔에서 명령어를 입력해서 작업하면 됩니다.

명령어 내용
crontab -e 새로 cron을 등록 하거나 기존에 작성한 내용을 수정.
vi 에디터로 전환 되며 편집을 합니다.
crontab -l 현재 작성된 crontab 내용을 보여줍니다.
아무것도 안나오면 작성을 하지 않은것 입니다.
crontab -r crontab내용을 삭제합니다.

 

 

편집 후에는 crontab을 재실행 해줍니다.

# service crond restart

crontab을 중지 하려면 다음 명령어를 사용합니다.

# service crond stop

crontab을 중지 후 사용 하려면 다음 명령어를 사용합니다.

# service crond start

 

 

실행할 명령어가 많다면 주석을 이용해 설명을 해야 하는데 이때는 맨 처음에 #을 붙여주면 됩니다.

 

# 테스트 용 주석달기 명령어1
* * * * * /명령어1
# 테스트 용 주석달기 명령어2
* * * * * /명령어2

 - copy coding -


+ Recent posts