Linux

Linux rsync를 사용하여 백업

황동리 2024. 4. 17. 16:57
반응형

rsync는 파일이나 디렉터리를 로컬 및 원격에서 동기화 하는데 사용됩니다.

그래서 주로 백업을 할 때 많이 사용되는 명령어 입니다.

cp와의 차이점은 rsync는 source  destination 의 변경 사항을 확인 하고 자동으로 sync를 맞춰줍니다.

cp는 source에 있는 파일이나 디렉터리를 destination 에 덮어씌운다고 생각하시면 편합니다.

설치방법
yum or apt 를 사용하여 설치를 하면 됩니다.
ex) apt install -y rsync or yum install -y rsync

rsync 옵션 확인

-a: 동기화되는 파일의 권한, 소유권, 타임스탬프 및 기타 속성을 유지합니다. 정확한 복사본을 만드는데 사용됩니다.
-v: rsync 명령어를 사용하여 sync를 맞추는 과정을 자세하게 출력
-z: 데이터 전송 중 압축을 하여 전송되는 데이터의 양을 줄일 수 있습니다.
-r: 하위 폴더에도 적용
-n: 실제로 rsync 명령을 실행하지 않고 동기화 프로세스를 미리 볼 때 사용됩니다.
--delete: 소스에 없는 파일을 대상에서 삭제하여 대상이 소스의 정확한 복제본인지 확인
--exclude: 특정 파일이나 디렉터리가 전송되지 않도록 제외

rsync 명령어 사용법

rsync [option] [source] [target]

crontab에 rsync 명령 shell을 등록해서 1분마다 Source와 Destination sync를 맞춰보도록 하겠습니다.

백업 과정


/data 디렉터리안에 있는 모든 파일을 로컬의 /backup 디렉터리에 백업 해보도록 하겠습니다.

먼저 쉘 스크립트를 작성해줍니다.
# vim backup.sh

#!/bin/bash

# Source Directory 정의
SOURCE_DIRS=(
        "/data"
)

# Destination Directory 정의
DESTINATION_DIR="/backup/gitlab"

for SOURCE_DIR in "${SOURCE_DIRS[@]}"; do
        rsync -avh "$SOURCE_DIR" "$DESTINATION_DIR"
done

이제 crontab에 등록만 해주면 됩니다.

crontab -e

* * * * * sh /root/backup.sh

그리고 crond 서비스를 재시작 해주어야 합니다.

# systemctl restart crond

결과

 

감사합니다.

반응형

'Linux' 카테고리의 다른 글

Ubuntu 유저 생성 및 sudo 권한 부여  (1) 2024.06.04
RHCSA 공부 3일차  (1) 2024.04.20
NFS mount 오류 확인 및 해결 (Connection time out)  (0) 2024.04.16
RHCSA 공부 2일차  (0) 2024.04.13
RHCSA 공부 1일차  (0) 2024.04.04