Linux

[Linux] crontab 바로잡기

crown28 2024. 5. 10. 15:38

cron

주기적으로 반복되는 시스템 작업을 예약하는 소프트웨어.

cron과 관련된 서비스(데몬)는 crond이고, 관련 파일은 /etc/crontab이다.

 

/etc/crontab의 형식은 다음과 같다.

분  시  일  월  요일  사용자  실행명령

 

일요일=0 or 7, 월요일=1

 

00  05  1  *  *  root  cp  -r  /home  /backup

매월 1일 새벽 5시 00분에 예약 작업 실행

네 번째의 *는 매월을 의미한다. 네 번째부터 거꾸로 읽어 예약 일시를 파악한다.

명령어를 통해 /home 디렉터리가 통째로 /backup 디렉터리에 복사된다

주기적으로 실행할 내용을 디렉터리에 넣더 두고 실행할 수 있다.

etc/crontab 파일과 관련 디렉터리

 

01  *  *  *  *  root  run-parts  /etc/cron.hourly

매시 1분에 /etc/cron.hourly 디렉터리 안에 있는 모든 명령을 자동으로 실행

run-parts는 디렉터리 안의 모든 명령을 실행하는 명령이다.

 

 

실습

 

'매월 15일 새벽 3시 1분에 /home 디렉터리와 그 하위 디렉터리를 /backup 디렉터리에 백업하도록 예약 작업을 설정하자'

 

 

gedit /etc/crontab 명령을 입력해 예약 파일을 gedit 에디터로 편집

매월 15일 새벽 3시 1분에 /etc/cron.monthly 디렉터리 안의 모든 파일 실행 (run-parts)

 

 

 

/etc/cron.monthly/ 디렉터리에 myBackup.sh 생성 후 실행 위해 속성 변경

 

 

 

gedit myBackup.sh 명령으로 편집

현재 날짜를 추출해서 /backup 디렉터리에 /home 디렉터리 전체를 backup-현재날짜.tar.xz라는 파일로 백업하라는 의미

 

 

 

백업용 디렉터리를 생성하고 crond 재시작. 이제 매월 15일마다 /home 디렉터리를 백업한다.

 

 

 

확인을 위해 날짜를 강제로 바꾸고 결과 확인.

 

 

 

at 명령으로 내일 새벽 4시에 시스템을 최신 패키지로 업데이트하고 재부팅하도록 예약하기. 그리고 예약된 내용 삭제하기.

 

 

출처: 이것이 리눅스다