백업을 하려니 ftp, sftp 로 연결해서 해도 되는데, 막 찾아보니 rsync 가 편리해 보여 일단 시도해봄!
SSH 연결 설정
먼저 SSH 가 연결되는 환경을 맞춰둬야 한다.
접속하려는 서버의 홈디렉토리 밑에 .ssh 폴더 아래에 보면,
authorized_keys 라는 파일을 열어서 현재 접속을 시도하는 PC의 공개키를 복사해 둬야 한다. 머 인증된 사용자라는 뜻이 될듯.
그냥 vi로 열어서 맨 마지막에 공개키 내용을 긁어서 복사해 주면 된다.
엇. 공개키가 어데 있나?
이미 만들었다면 자신의 홈 밑에 .ssh 디렉토리 아래에 xxxx.pub 이라고 설정되어 있을 확률이 높다.
내 우분투 시스템에 내용을 살펴보니 아래 그림과 같이 있었다. (언제 만들었는지 ㅋㅋㅋ)
없다면, 아래 명령을 입력해서 하나 만들면 된다.
$ ssh-keygen -t rsa
출처: https://readytoact.tistory.com/92 [HarimHouse2]
rsync 명령어
원격 서버 주소에 있는 특정 폴더를 로컬 우분투에 가져오는 거
아주 쉽게 한줄로 딱!!
rsync -avz 서버계정명@원격서버주소:~/원하는폴더 ~/
~/원하는폴더 대신 폴더 위치를 주면 된다. ~/ 는 home/서버계정명/ 폴더를 나타낸다. 기본으로는
지정한 폴더를 로컬 우분투 시스템의 home 디렉토리 아래로 가져와라는 명령 되겠다.
아래와 같이 복사되는 과정이 쭉 나오고, 다 받으면 사이즈 출력하고 완료~
receiving incremental file list
mongo_backup/
mongo_backup/dbbackup.sh
mongo_backup/dbrestore.sh.dontusehere
mongo_backup/DB/
mongo_backup/DB/customer.bson
...
sent 496 bytes received 101,086,309 bytes 3,209,104.92 bytes/sec
total size is 3,502,068,521 speedup is 34.64
사실, 이 작업 전에 ssh로 접속이 가능한 상태로 만들어 두고 시작했다. 이건 꼭 해야 할 듯~
원격명령 수행
혹시 rsync 이전에 백업 스크립트를 먼저 수행하고, 그 결과를 가져오고 싶으면
간단하게 ssh 명령으로 원격 명령을 수행하면 된다.
당연하게도 서버에 스크립트 정도는 짜놓고 있어야 간단하게 호출할 수 있겠지? :)
ssh 서버계정명@원격서버주소 "~/mongo_backup/dbbackup.sh"
여기 예제에서는 ~/mongodb_backup 폴더 밑에 있는 dbbackup.sh 를 실행시키는 것이다.
이로서, 최신 데이터를 백업하고 다시 rsync를 호출해서 가져오면 최신 DB 데이터 백업은 수행이 가능할 듯
cron을 이용하여 자동 실행을 걸어두면 더 좋을 듯 한데, 이건 나중에 하자.
참고 사이트
참고 페이지는 아래와 같다.
- [Linux] ssh, rsync를 이용한 상호 원격 백업 설정
- SSH 인증키 생성 및 서버에 등록 & 간편하게 접속하기
- rsync 와 삼바를 이용하여 자동 백업구축 - rsync 만 보면 된다.
BJ.
Oleg Magni 님의 사진, 출처: Pexels
'IT > 리눅스' 카테고리의 다른 글
라즈베리파이 종료하기 (0) | 2022.11.16 |
---|---|
쉘 스크립트 파일에서 다른 쉘 스크립트 파일 실행하기 - 리눅스 기초 (0) | 2021.08.12 |
리눅스 - DHCP 받은 IP 수동으로 갱신하기 (2) | 2021.07.08 |
우분투 Nginx - 동일 포트 http 접근 https 리다이렉트 (0) | 2021.06.02 |
우분투 SSH 서버 설치 및 설정 - WinSCP로 접속 예제 - 2021.05.31 (1) | 2021.05.31 |