/usr/sbin/crond
/usr/bin/crontab
프로세스 예약 데몬
리눅스용 작업 스케줄러
로그: /var/log/cron에 변경/수행 이력이 기록됨
등록형식
* * * * * 수행할 명령어
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ │
│ │ │ │ └───────── 요일 (0 - 6) (0:일요일, 1:월요일, 2:화요일, …, 6:토요일)
│ │ │ └───────── 월 (1 - 12)
│ │ └───────── 일 (1 - 31)
│ └───────── 시 (0 - 23)
└───────── 분 (0 - 59)
예시
* * * * * /root/every_1min.sh
→ 매 1분마다 /root/every_1min.sh 를 수행 (하루에 1440회)
15,45 * * * * /root/every_30min.sh
→ 매시 15분, 45분에 /root/every_30min.sh 를 수행 (하루에 48회)
*/10 * * * * /root/every_10min.sh
→ 10분마다 /root/every_10min.sh 를 수행 (하루에 144회)
0 2 * * * /root/backup.sh
→ 매일 02:00에/root/backup.sh 를 수행 (하루에 1회)
30 */6 * * * /root/every_6hours.sh
→ 매 6시간마다 수행(00:30, 06:30, 12:30, 18:30)
30 1-23/6 * * * /root/every_6hours.sh
→ 1시부터 매 6시간마다 수행(01:30, 07:30, 13:30, 19:30)
0 8 * * 1-5 /root/weekday.sh
→ 평일(월요일~금요일) 08:00
0 8 * * 0,6 /root/weekend.sh
→ 주말(일요일, 토요일) 08:00
작업목록 보기
# crontab -l
작업목록 수정
# crontab -e
작업목록 삭제
# crontab -r
크론 로깅 (cron logging)
크론탭을 사용해서 정기적으로 작업을 처리하는 것은 좋은데, 해당 처리 내역에 대해 로그를 남기고 싶을 때가 있을겁니다. 그럴때 다음처럼 한번 써봅시다.
* * * * * /home/script/test.sh > /home/script/test.sh.log 2>&1
위처럼 작성하면 매분마다 test.sh.log 파일이 갱신 되어 작업 내용이 어떻게 처리 되었는지 알 수 있습니다. 만약 2>&1 을 제거하면 쉘스크립트에서 표준 출력
내용만 나옵니다. 2>&1은 이곳에서 확인합시다.
그런데, 이게 너무 자주 실행 되고 또한 지속적으로 로깅이 되야 해서 로그를 계속 남겨둬야 한다면 다음처럼 입력합니다.
* * * * * /home/script/test.sh >> /home/script/test.sh.log 2>&1
그러면 계속 로그가 누적이 되는 것을 확인 할 수 있을겁니다. 대신 로그가 과도하게 쌓이면 리눅스 퍼포먼스에 영향을 주므로 가끔씩 비워주거나 파일을 새로
만들어주는 센스가 필요합니다.
반대로 로그는 필요 없는 크론을 위해선 다음처럼 입력합니다.
* * * * * /home/script/test.sh > /dev/null 2>&1
크론탭 백업 (crontab backup)
자, 혹시라도 crontab -d 를 쓰거나 실수로 crontab 디렉토리를 날려버려서 기존 크론 내역들이 날아갔을때, 정말 황망할거 같은데 말이죠.
그러니 주기적으로 크론탭을 백업해 둡시다. 백업은 다음처럼 하는 방법이 있습니다.
crontab -l > /home/bak/crontab_bak.txt
크론탭 내용을 txt 파일로 만들어 저장해두는겁니다. 자, 이것도 자동화가 될 수 있을까요?
50 23 * * * crontab -l > /home/bak/crontab_bak.txt
처럼 하면 되겠죠? 매일 오후 11시 50분에 크론탭을 백업해두는 크론 명령어입니다.
'리눅스' 카테고리의 다른 글
php 5.6 in CentOS 6.X(6.8) (0) | 2018.11.12 |
---|---|
리눅스 씨리얼 serial 확인 (0) | 2018.11.12 |
[CentOS] USB 저장장치 마운트 (FAT32) (0) | 2018.11.12 |
소프트링크 ln (0) | 2018.11.12 |
서버 계정 변경 및 추가 (su 접속 설정) (0) | 2018.11.12 |