개발/Linux
[Linux] Crontab사용법
개발햄
2021. 4. 18. 18:53
CronTab이란
Crontab은 스케줄을 관리하는 커맨드 입니다
즉 "특정 시간에 특정 작업을 하도록" 하는 것 입니다
목요일 10시에 리눅스 작업을 하고싶은 경우 CronTab 스케줄 등록을 해주시면 됩니다.
cronTab
$ crontab -e
텍스트를 입력할 수 있는 창이 뜹니다. 여기서 cronTab을 설정할 수 있고 esc 를 누른 후
:q (저장하지 않고 종료)
:q! (저장하지 않고 강제 종료)
:wq (저장 후 종료)
를 통해서 편집기를 빠져나오거나 갱신할 수 있습니다
$ crontab -l
내용만 확인하고 싶을경우 (cat 명령어와 비슷) 위 명령어를 치면 등록된 스케줄이 나옵니다.
$ crontab -r
내용을 삭제하고 싶은 경우 위의 명령어를 입력하면 됩니다 -r(emove)
CronTab * 의미
* * * * *
분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-7)
등록된 크론탭을 보면 ***** 으로 표시된 것을 볼수 있는데 *의 의미는 위의 예제와 같습니다.
매 분 실행하기
# 매 분 test.sh 실행
* * * * * test.sh
한시간 마다 실행
# 한시간 마다 실행
0 * * * * test.sh
매주 금요일 오전 5시 10분에 test.sh 를 실행
# 매주 금요일 오전 5시 10분에 test.sh 를 실행
10 5 * * 5 test.sh
오전 11시와 오후 4시마다 실행
# 오전 11시와 오후 4시마다 실행
00 11,16 * * * test.sh
주말을 제외하고 평일 09시부터 18시에 매 시간 당 실행
# 주말을 제외하고 평일 09시부터 18시에 매 시간 당 실행
00 09-18 * * 1-5 test.sh
매일 1시 0분부터 30분까지 매분 tesh.sh 를 실행
# 매일 1시 0분부터 30분까지 매분 tesh.sh 를 실행
0-30 1 * * * test.sh
매 30분마다 test.sh 를 실행
# 매 30분마다 test.sh 를 실행
*/30 * * * * test.sh
CronTab 로깅
* * * * * test.sh > /home/test.sh.log
CronTab 5시간 뒤 종료 18000(5시간)
30 23 * * * timeout 18000 test.sh.log
CronTab 강제종료
pkill -f 'wget -q -O - https://happist.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1'
Crontab 백업명령
# 23시50분에 매일 /home/bk/안에 crontab_bak.txt이름으로 백업
50 23 * * * crontab -l > /home/bk/crontab_bak.txt