Search
🚀

rsync를 활용한 원격 서버 디렉토리 백업

원격지 서버가 NAS를 사용하지 않을 때, 파일 혹은 디렉토리을 로컬 서버로 백업해야 할 때…

rsync 상세 정리 (선행 학습)

작업 조건

원격지 서버의 특정 디렉토리내 파일들을 로컬 서버로 백업(동기화) 가정
원격지 서버의 디렉토리 권한이 root 인 상황 가정
원격지 서버에 root로 직접 SSH 접근이 불가한 상황 가정
불필요한 방화벽 허용 작업을 피하기 위하여 SSH 방식 적용
1.
로컬 서버:디렉토리
DEV-WEB:/data1
IP : 192.168.0.9
2.
원격지 서버:디렉토리
DEV-WAS:/data1
IP : 192.168.0.7

테스트 과정

1. [로컬 서버] 디렉토리 만들기

2. [원격지 서버] 테스트 데이터 세팅

3. [원격지 서버] 내 테스트 계정 설정

테스트 계정 생성
username : hoho
pw : password
suoders 설정
원격지 서버에 root 계정으로 바로 접근 가능한 경우 생략 가능
/etc/sudoers
……………… hoho     ALL=(ALL)       NOPASSWD: /usr/bin/rsync
Plain Text
복사

4. [로컬 서버] 디렉토리 만들기

최상위 디렉토리 백업
rsync -avzr --delete --partial -e "ssh -p 22" --rsync-path="sudo rsync" hoho@192.168.0.7:/data1/ /data1/
Bash
복사
하위 디렉토리 백업
rsync -avzr --delete --partial -e "ssh -p 22" --rsync-path="sudo rsync" hoho@192.168.0.7:/data1/a /data1/a
Bash
복사
nohup을 활용하여 백그라운드 명령어 실행
nohup rsync -avzr --delete --partial -e "ssh -p 22" --rsync-path="sudo rsync" hoho@192.168.0.7:/data1/ /data1/ &
Bash
복사
 이렇게 하니까 ssh 비밀번호 입력 프롬포트도 백그라운드로 돌아가서, 진행이 안됨. rsa 키방식으로 변경하면 이슈는 해결되지만 귀찮음. 그냥 로컬 서버에 sshpass 설치....
sshpass 명령어 조합
nohup sshpass -p 'password' rsync -avzr --delete --partial -e "ssh -p 22" --rsync-path="sudo rsync" hoho@192.168.0.7:/data1/ /data1/ &
Bash
복사