crontab
현재 실행중인 crontab list
# crontab -l
Crontab 편집
# crontab -e
다음과 같이 입력하면 vi처럼 편집할 수 있는 화면이 생긴다.
여기서 필요한 job들을 추가한 후 :wq로 저장하면 자동으로 crontab 에 job이 추가된다.
job설정
주기 결정
* * * * *
(분) (시간) (일) (월) (요일)
분, 시간, 일 ,월, 요일 순이며 요일의 경우 0과 7이 일요일이며 1부터 월요일, 6이 토요일이다.
주기 예제
* * * * *
매분 실행
0 0 * * *
매일 자정 실행
0,30 * * 1-5
월요일부터 금요일까지 매시간 0분, 30분마다 실행
*/10 * * * *
매 10분 마다 실행
*/10 22,23 5-10 * *
5일에서 10일까지 22시, 23시 매 10분마다 실행
job example
* * * * * /root/test/test.sh
test.sh를 매 분마다 실행
logging
* * * * * /root/test/test.sh > /var/log/test/test.sh.log 2>&1
test.sh.log에 파일이 매분마다 경신됨
* * * * * /root/test/test.sh >> /var/log/test/test.sh.log 2>&1
로그 누적해서 쌓음
* * * * * /root/test/test.sh > /dev/null 2>&1
로그 안쌓음
2>&1이란?
n >&m : 표준 출력과 표준 에러를 서로 바꾸는 것이다.
0: 표준 입력 , 1: 표준 출력, 2: 표준에러를 의미한다.
즉 2>&1이란 표준 에러를 표준 출력이 전달되는 곳으로 전달! 이라는 의미이다. (표준 입력의 경우 <&0)
조금 더 들어가면 /dev/null 은 /dev/null로 출력하므로 출력이 안보이기에 로그를 남기지 않는 것입니다.
참고
jdm.kr/blog/2
www.adminschoice.com/crontab-quick-reference