Linux

Crontab 설치 및 사용 설정

nineDeveloper 2021. 7. 9.
728x90

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 

Crontab Editor 변경

초기에 잘못 설정한 Crontab Editor 다시 설정하는 방법

select-editor

# 기본으로 nano가 선택되어있음, 익숙한 editor로 변경
Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        <---- easiest
  3. /usr/bin/code
  4. /usr/bin/vim.basic
  5. /usr/bin/vim.tiny

Choose 1-5 [2]:
728x90

댓글

💲 추천 글