둘셋 개발!

[Linux] 예약 작업하기 - 데이터 주기적으로 백업해보기!! 본문

카테고리 없음

[Linux] 예약 작업하기 - 데이터 주기적으로 백업해보기!!

23 2024. 3. 27. 21:58

본 내용은 'KT 리눅스 쉘 스크립트 프로그래밍 교육'에 기반한 내용입니다.
 
쉘 스크립트 작성의 가장 큰 이유는 반복적인 일은 자동화 하기 위함이다.
이번 포스팅은 예약 작업에 관한 내용을 다룰 것이다.
 
백업해야 하는 자료를 매번 직접 백업하는 것이 아니라 쉘 스크립트를 사용해서 자동화해보자
 

하고자 하는 것: /lab/scripts/data/ 아래에 있는 모든 파일을 주기적으로 /lab/backup 디렉토리로 백업

 
1. 백업할 데이터를 생성

mkdir /lab/scripts/data

vi 1.sh
vi 2.sh

/lab/scripts/data 디렉토리를 생성 후 1.sh, 2.sh 파일을 넣어주었다.
 
2. 백업 명령 스크립트 생성 후 권한 부여
backup_data.sh

#! /bin/bash

rsync -av /lab/scripts/data/ /lab/backup/
chomod +x backup_data.sh

 
3. 예약 작업 등록

crontab -e

 
매 분마다 /lab/scripts/backup_data.sh을 실행하겠다는 의미이다.
별 표로 시간 설정을 할 수 있는데 자세한 내용은 뒤에서 다루겠다.

* * * * * /lab/scripts/backup_data.sh

 
 
 
🫠권한 부여를 하지 않으면 벌어지는 일.....더보기

더보기

이렇게 메일이 왔다고 알려준다.

 

해당 메일을 열어보면

 

허락이 거절 되었다고 와있다.!!

 
4. 결과 확인

이렇게 backup디렉토리 안에 1.sh, 2.sh 파일이 정상적으로 백업이 되어 있다.
근데 매분마다 백업을 하기 때문에 3.sh 파일을 추가적으로 만들어보고 바로 확인해봤다.

어느 순간 3.sh와 4.sh 가 백업되어 있는 걸 확인할 수 있다~~~
 
 
5. 예약 작업확인

crontab -l

 

 
6. 예약 작업 삭제
모든 예약 작업을 삭제 하는 것이다!!

crontab -r

삭제 된 것을 확인할 수 있다.

 

시간 설정 하기

이제 예약주기를 설정하는 '* * * * *' 사용법을 알아보자!

 

우선 *은 모든 시간을 의미한다.

그리고 5자리를 순서대로 '분'  '시간'  '일'  '월'  '요일'을 나타내고 숫자로 표현한다.

요일은 0이 일요일이고 6이 토요일이다.

 

EX)

20 2 * * 6     ->    매주 토요일 2시 20분마다

15 1 1 * *     ->    매월 1일 1시 15분마다

30 0 1 1,7 *  ->    1,7월 1일 0시 30분 마다    (컴마로 여러 시간대를 지정할 수도 있다)