본문 바로가기

Crontab installation and Usage

Crontab 설치 - CentOS

# cron 설치
sudo yum update -y
sudo yum install -y cronie
# cron 시작
sudo systemctl start crond
# cron systemctl 활성화
sudo systemctl enable crond
# cron systemctl 등록 확인
sudo systemctl list-unit-files | grep crond

Crontab 설치 - Ubuntu

# cron 설치
sudo apt update -y
sudo apt install -y cron
# cron 시작
sudo service cron start
# cron systemctl 활성화
sudo systemctl enable cron.service
# cron systemctl 등록 확인
sudo systemctl list-unit-files | grep cron
sudo service cron status

Crontab 사용방법

Crontab 명령어

# Crontab 편집
crontab -e
# Crontab List 조회
crontab -l
# Crontab List 전체 삭제
crontab -r

Crontab 추가 형식

minute hour day month weekday command
  • minute : 0 - 59

  • hour : 0 - 23

  • day : 1 - 31

  • month : 1 - 12

  • weekday : 0 - 6 (0 : 일요일)

  • command : 수행하려는 작업 명령어

Crontab 사용 예제

# 매분마다 /land/disk_alarm/disk_alarm.sh를 실행하고 로그는 /dev/null로 전송
* * * * * /land/disk_alarm/disk_alarm.sh &>/dev/null

# 매일 1시에 rsync로 /backup/ Folder를 backup.server.com의 backup계정의 홈폴더로 백업
# 이때 rsync는 절대 경로를 사용. 
0 1 * * * /usr/bin/rsync -az /backup/ backup@backup.server.com:. &> /dev/null

# system_chk.sh 를 월 ~ 금요일 매 5분마다 실행
*/5 * * * 1-5 /home/service/system_chk.sh 

# system_chk.sh를 매분 실행 이때 HOST라는 환경변수는 hostname명령어로 가져와 사용한다. 
# 추가로 crontab의 전체 환경 변수를 지정하고 싶을 경우 crontab -e로 수정 후 맨 윗줄에 환경 변수를 지정
* * * * * HOST=$(hostname) /home/service/system_chk.sh 

Secuof Blog