리눅스(Linux) 계열에서 특정 시간에 특정 작업을 하는 데몬을 Cron(크론)이라 하고
크론(Cron) 이 언제 무엇을 하는지 특정 파일에 저장하는 것을 크론탭(Crontab)이라고 한다.
즉 크론탭(crontab)은 리눅스 운영체제에서 배치 작업을 스케쥴링 하기 위한 프로그램 이다.
크론(Cron) 이라는 데몬이 원하는 시간에 원하는 명령 또는 프로그램 을 수행하도록 명령 리스트를 만드는 것이 크론탭(Crontab) 작업이라고 할 수 있다.
이는 윈도우의 스케줄러와 비슷한 컨셉 이다.
특정 시간에 특정 작업을 해야할때
반복된 시간에 반복된 작업을 해야할때
예약 작업을 사용해야 할때
설치
리눅스: apt-get install cron
맥북: 기본 내장
크론탭 편집
crontab -e
현재 사용중인 crontab의 목록과
'insert' 키를 입력 후 아래에 새로운 crontab을 추가 할 수 있다.
크론탭 작업 내용 확인
crontab -l
크론탭 삭제 (삭제시 크론탭 자체가 삭제됩니다)
crontab -r
현재 크론탭에 설정되어 있는 내용 삭제
crontab -d!
stderr 기본 출력장치(모니터) -> 에러
stdin 기본 입력장치(키보드) -> 입력
stdout 기본 출력장치(모니터) -> 출력
* * * * * {실행 명령}
// 위 순서대로 분 시 일 월 요일 {실행 명령}
분 : 0-59
시 : 0-23
일 : 0-31
월 : 0-12
요일 : 요일에서 0과 7은 일요일, 1부터 6은 월요일부터 토요일
// 매 분마다 실행
* * * * * {실행 명령} or /1 * * * * {실행 명령}
// 매 시 정각에 실행
0 * * * * {실행 명령}
// 매일 오후 13시 정각에 실행
0 13 * * * {실행 명령}
// 매주 월요일 자정에 실행
0 0 * * 1 {실행 명령}
// 매달 5일 자정에 실행
0 0 5 * * {실행 명령}
// 매시 25분, 55분에 실행
25,55 * * * * {실행 명령}
// 15분마다 실행
*/15 * * * * {실행 명령}
// 매일 3시에 실행
0 3 * * * {실행 명령}
// 매 6시간마다(00:30, 06:30, 12:30, 18:30) 실행
30 */6 * * * {실행 명령}
// 1시부터 매 6시간마다(01:30, 07:30, 13:30, 19:30) 실행
30 1-23/6 * * * {실행 명령}
// 평일(월요일~토요일) 06:00에 실행
0 6 * * 1-6 {실행 명령}
// 토요일 07:00에 실행
0 7 * * 6 {실행 명령}
1) 매분 실행
* * * * * /root/scripts/status_check.sh
2) 특정 시간에 실행
매주 월요일 오전 6시 40분에 실행
40 6 * * 1 /root/scripts/status_check.sh
3) 반복 실행
매일 매시간 0분, 20분, 40분에 실행
0,20,40 * * * * /root/scripts/status_check.sh
4) 범위 실행
매일 오전 6시 10분부터 40분까지 매분 실행
10-40 6 * * * /root/scripts/status_check.sh
5) 간격 실행
매 20분마다 실행
*/20 * * * * /root/scripts/status_check.sh
6) 특정 여러 시각 실행
10일에서 12일까지 4시, 5시, 6시 매 20분마다 실행
*/20 4,5,6 10-12 * * /root/scripts/status_check.sh
// 크론탭 시작
service cron start
// 크론탭 중지
service cron stop
// 작동확인
service cron status
crontab 설정 변경 후 항상 cron 서비스를 재시작해야 한다.
아래 명령어중 하나를 실행하면된다.
cron restart 가 안되는면 crond restart 를 사용하면 된다.
service cron restart
service crond restart
- crontab 실행 팁
로그(log) 남겨두기
단, 로그가 많이 쌓이면, 서버 저장공간이 꽉차게 되고, 서버는 다운 또는 비정상동작을 보일 수 있으므로, 주기적으로 삭제