Intro
Crontab 은 특정 시간에 특정 작업을 해주는 리눅스 스케줄러이다.
주요 명령어 (options)
-u
crontab -u
define user
user 사용자에 대해서 크론탭을 수행한다. 생략하면 크론탭 명령을 실행하는 사용자에 대해서 크론탭 수행
-e
crontab -e
edit user's crontab
VIM을 사용하여 크론탭을 편집한다.
수정 후 할일
service crond stop
service crond start
크론을 재시작 해줘야한다.
restart는 사용이 안되는듯하다.
정상적으로 재시작이 되었는지 확인하기 위해서는 service crond status
로 확인하면 된다.
Active : active (running) ~~ 이렇게 뜰꺼임
-l
crontab -l
list user's crontab
cat 명령어 처럼 크론탭에 저장된 명령어(작업목록)를 출력한다.
-r
crontab -r
delete user's crontab
크론탭의 내용을 모두 삭제한다.
등록 형식
* * * * * 수행할 명령어
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ │
│ │ │ │ └───────── 요일 (0 - 6) (0:일요일, 1:월요일, 2:화요일, …, 6:토요일)
│ │ │ └───────── 월 (1 - 12)
│ │ └───────── 일 (1 - 31)
│ └───────── 시 (0 - 23)
└───────── 분 (0 - 59)
예시
매 1분마다 작업 수행
* * * * * /Hi/Hi.sh
1, 2, 3, 4, 5 ...
매시 15분, 45분에 작업 수행
15,45 * * * * /Hi/Hi.sh
00:15, 00:45, 01:15, 01:45 ...
10분마다 작업 수행
*/10 * * * * /Hi/Hi.sh
10, 20, 30, 40 ...
매일 2:00에 작업 수행
0 2 * * * /Hi/Hi.sh
2:00, 2:00
매 6시간마다 작업 수행
30 */6 * * * /Hi/Hi.sh
00:30, 6:30, 12:30 ...
1시부터 매 6시간마다 작업 수행
30 1-23/6 * * * /Hi/Hi.sh
1:30, 7:30, 13:30 ...
월-금요일 8:00에 작업 실행
0 8 * * 1-5 /Hi/Hi.sh
월 08:00, 화 08:00 ...
주말 08:00에 작업 실행
0 8 * * 0,6 /Hi/Hi.sh
토 08:00, 일 08:00 ...
로그
작업 명령 등록시
crontab -e
위 명령어로 크론탭 편집에 들어간다.
*/10 * * * * /Hi/Hi.sh > /Hi/Hi.log 2>&1
*/10 * * * * /Hi/Hi.sh >> /Hi/Hi.log 2>&1
이렇게 하면 Hi.sh 파일 실행의 출력 내용과 에러가 담긴다.
>
이 화살표가 한개면 파일을 실행 시킬때마다 log를 새로 작성한다.
>>
이렇게 두개면 이전 내용 다음에 이어서 작성된다.
/dev/null 2>&1
/dev/null 2>&1
명령어 처리결과 그리고 발생할지 모르는 에러메세지를 출력하지 않고 모두 다 버린다는 의미이다.
2 : 표준 에러
: 리다이렉트
&1 : 표준 출력
즉 /dev/null 2>&1
은 표준 에러가 발생하면 /dev/null에다 리다이렉트로 표준 출력해라.
고로. 에러를 보고 싶으면 /dev/null 대신에 /Hi/Hi.log 처럼 파일명을 적어주면 된다.
기본 로그
vim /var/log/cron
주의사항
크론탭에 입력하는 작업 명령은 꼭 한줄로 작성해야한다.
참고문헌
리눅스 크론탭(Linux Crontab) 사용법, "https://jdm.kr/blog/2", [JDM's Blog]
리눅스 cron - 작업 예약 명령, "https://webdir.tistory.com/174", [WEBDIR]
리눅스 반복 예약작업 cron, crond, crontab, "https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EB%B0%98%EB%B3%B5_%EC%98%88%EC%95%BD%EC%9E%91%EC%97%85_cron,_crond,_crontab", [ZETAWIKI]
[Linux] crontab 사용법, "https://includestdio.tistory.com/31", [includestdio]
Crontab 설정 및 로그 - 스케줄링하기, "https://ourcstory.tistory.com/63", 불로
cron(crontab) 실행 로그 남기기2, "https://blog.work6.kr/321", [WORK6]
crontab 사용법 및 log, "https://loveroid.tistory.com/57", [sgawn james]
[Linux] 쉘스크립트 crontab 동작시 /dev/null 2>&1 효과, "http://blog.daum.net/_blog/BlogTypeView.do?blogid=04kqb&articleno=15418625&categoryId=736857®dt=20171113114402", [삽돌이]
Ghost