Crontab 이란
crontab은 스케줄링을 관리하는 프로그램으로 시스템 관리자에게 중요한 유틸 중 하나이다. 특정 시간대에 사용자가 작성한 스트립트나 명령을 실행 할 수 있다. 이는 rsync 같은 툴을 같이 사용하여 굉장히 편리한 백업 시스템을 만들 수도 있고 데이터 베이스관리나 기타 반복적인 업무를 간편하게 등록하여 사용 할 수 있다.
MIN HOUR DOM MON DOW CMD
필드 | 명세 | 허용 값 |
---|---|---|
MIN | 분 | 0~59 |
HOUR | 시간 | 0~23 |
DOM | 날짜 | 1-31 |
MON | 달 | 1-12 |
DOW | 주 | 0-6 |
CMD | 명령어 | 실행 가능 한 모든 명령어 |
1. 다음 시간 6월 10일 오전 8시 30분
을 cron 명령어에 맞게 작성해보자.
30 08 10 06 * /home/script/backup
- 30: 30분
- 08: 오전 8시 <24시제>
- 10: 10일
- 06: 6월
- *: 매주
2. 매일 하루 두 번 증분 백업을 하자.
00 11,16 * * * /home/script/incremental-backup
- 00: 0분 (정각)
- 11,16 - 오전 11시 / 오후 4시
- *: 매일
- *: 매달
- *: 매주
3. 특정 시간대에 작업하기
00 09-18 ** 1-5 /home/check-db-status
- 00: 0분 (정각)
- 09-18: 오전 9, 10, 11, 12시 / 오후 1, 2, 3, 4, 5, 6시 마다 작업
- *: 매일
- *: 매달
- 1-5: 월, 화, 수, 목, 금 (주중)
4. crontab 작업 목록 보기 (명령어)
$ crontab -l @hourly /home/script/hourly-script 00 09-18 ** 1-5 /home/check-db-status $ crontab -u foo -l no crontab for foo $ su # crontab -l no crontab for root
5. crontab 목록 수정
목록 수정을 vi/vim으로 편집하려면 변수를 선언해줘야 한다. export VISUAL=vim
$ crontab -e $ crontab -u foo -e
6. 매분마다 작업하기
* * * * * CMD
7. 10분 마다 작업하기
*/10 * * * * /home/script/check-disk-space 0-10/2 * * * * /home/script/check-db-updates-5times
- */10의 뜻은 10분 마다
- 0-10/2의 뜻은 처음 10분 동안 2분 간격으로
8. 키워드 사용
Keyword
키워드 | 대치 문법 |
---|---|
@yearly | 0 0 1 1 * |
@daily | 0 0 * * * |
@hourly | 0 * * * * |
@weekly | 0 0 * * 0 |
@reboot | 시스템 시작 시 |
다음은 키워드를 사용해 매일 반복하는 작업 스케줄링 crontab이다.
@daily /home/script/make-log
9. 메일 사용
crontab 수정시 MAILTO를 선언하면 실행 내용을 메일로 받을 수 있다.
MAILTO="xajax@naver.com"
10. 파일을 통한 crontab 설정
파일로 저장해 놓고 다른 시스템에 재 사용 하고 싶다면 다음과 같이 하면 된다.
$ crontab cron-file.txt $ crontab -l
'Etc > 보관함' 카테고리의 다른 글
[Linux] 권한 설정, 속성, chmod, chown (0) | 2014.01.29 |
---|---|
[Linux] 리눅스 기본 명령어 모음 (0) | 2014.01.28 |
[Linux] 크론탭(crontab) 사용법 확장 (0) | 2014.01.28 |
[Linux] vi 에디터 명령어 (0) | 2014.01.28 |
[Linux] 리눅스에서 압축하기, 압축풀기 (0) | 2014.01.28 |