CentOS(센트오에스) 7 crontab(크론탭)
2021년 2월 기준.
yum -y install cronie
// 크론탭 yum 설치
systemctl status crond
// 크론탭 확인
systemctl start crond
// 크론탭 시작
ps -ef | grep crond
// 프로세스 확인
systemctl enable crond
// 자동실행 설정
systemctl list-unit-files
// 자동실행 확인
crontab -e
// 크론탭 편집
crontab -l
// 리스트 조회
crontab -r
// 리스트 전체 삭제
Crontab를 사용할 때는 작업할 내용에 대하여 줄바꿈을 사용할 수 없으며 1줄로 작성.
# Example of job definition:
# .---------------- 분 (0 - 59)
# | .------------- 시간 (0 - 23)
# | | .---------- 일자 (1 - 31)
# | | | .------- 월 (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- 요일 (0 - 6) (일요일=0 or 7) OR 일요일(0 또는 7), 월요일(1), 화요일(2), 수요일(3), 목요일(4), 금요일(5), 토요일(6)
# | | | | |
# * * * * * 사용자명 작업할 내용
매분 작업 실행
# 매분 crontab 리스트를 crontab_list.txt에 저장 ( ">>"은 기존 내용에 추가를 할 때 사용하는 기호입니다.)
* * * * * crontab -l >> /crontab_data/crontab_list.txt
특정 시간에 실행
# 매주 월요일 오후 1시 10분에 crontab 리스트를 crontab_list.txt에 저장
10 13 * * 1 crontab -l >> /crontab_data/crontab_list.txt
특정 시간 반복 실행
# 매주 월요일 오후 1시 10분, 20분, 30에 crontab 리스트를 crontab_list.txt에 저장
10,20,30 13 * * 1 crontab -l >> /crontab_data/crontab_list.txt
범위를 지정한 특정시간 반복 실행
# 매주 월요일 오후 1시 10분부터 20분까지 매분마다 crontab 리스트를 crontab_list.txt에 저장
10-20 * * 1 crontab -l >> /crontab_data/crontab_list.txt
간격 반복 실행
# 매 5분마다 crontab 리스트를 crontab_list.txt에 저장
/5 * * * crontab -l >> /crontab_data/crontab_list.txt
다양한 반복 실행
# 매주 월요일에서 금요일까지 오후 1시, 2시, 3시에 매 5분마다 crontab 리스트를 crontab_list.txt에 저장
/5 13,14,15 * 1-5 crontab -l >> /crontab_data/crontab_list.txt
Crontab 작성 기호 종류
* # 범위 내 모두 실행
, # 나열된 숫자 중 일치하는 값에 실행
- # 두 숫자 사이에 포함된 범위에 실행
/ # 지정한 숫자에 실행
Crontab이 정상적으로 실행되었는지 로그를 통해서 확인.
crontab -e 명령을 통해 아래와 같이 매분 crontab -l 리스트를 백업할 수 있는 예약작업을 설정.
* * * * * crontab -l >> /crontest/crontab_list.txt
cat 명령어를 통해 crontab이 16:35:01, 16:36:01 매분 단위로 crontab이 실행한 작업내역을 확인.
cat /var/log/cron
Jun 11 16:35:01 netbox-test CROND[1775]: (root) CMD (crontab -l >> /crontest/crontab_list.txt)
Jun 11 16:35:01 netbox-test crontab[1776]: (root) LIST (root)
Jun 11 16:36:01 netbox-test CROND[1797]: (root) CMD (crontab -l >> /crontest/crontab_list.txt)
Jun 11 16:36:01 netbox-test crontab[1798]: (root) LIST (root)