별로 사용할 일이 없어서 필요할때마다 사용법을 찾아야 하는 번거로움이 있어서 시간이 많이 낭비되는것 같아 한번 정리를 해 봅니다.
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 -
'Setting' 카테고리의 다른 글
Visual Studio Code 한글 깨짐 물음표로 나올때 (0) | 2024.03.10 |
---|---|
Nginx 1.24.0 windows에 설치 및 간단한 설정 (0) | 2023.12.18 |
[Spring Boot] 외부 WAS용 War 배포 (JEUS 8) (2) | 2021.11.20 |
Tmax JEUS 8 설치 및 샘플 서버 실행 (0) | 2021.11.12 |
[포트 포워딩] 집에서 공유기로 Server 운용하기 (2) | 2021.03.20 |