rsync를 사용하여 Linux에서 데이터를 백업하는 방법
rsync는 데이터 백업 및 동기화를위한 믿을 수없는 다양한 기능을 제공하는 Unix 계열 시스템 용으로 구축 된 프로토콜입니다. 다른 디렉터리에 파일을 백업하는 데 로컬로 사용할 수도 있고 인터넷을 통해 다른 호스트에 동기화하도록 구성 할 수도 있습니다.
Windows 시스템에서 사용할 수 있지만 Cygwin과 같은 다양한 포트를 통해서만 사용할 수 있으므로이 하우투에서는 Linux에서 설정하는 방법에 대해 설명 할 것입니다. 먼저 rsync 클라이언트를 설치 / 업데이트해야합니다. Red Hat 배포판에서 명령은 "yum install rsync"이고 데비안에서는 "sudo apt-get install rsync"입니다.
루트로 로그인 한 후 Red Hat / CentOS에 대한 명령 (Red Hat의 최근 배포판 중 일부는 sudo 메소드를 지원함).
데비안 / 우분투 명령.
로컬 백업에 rsync 사용
이 튜토리얼의 첫 번째 파트에서는 Directory1에서 Directory2로 파일을 백업합니다. 이 두 디렉토리는 동일한 하드 드라이브에 있지만 두 개의 다른 드라이브에 디렉토리가 존재하는 경우 정확히 동일하게 작동합니다. 구성하려는 백업의 종류에 따라 이러한 접근 방식에는 여러 가지가 있습니다. 대부분의 경우 다음 코드 줄이면 충분합니다.
$ rsync -av --delete / Directory1 / / Directory2 /
위의 코드는 Directory1의 내용을 Directory2와 동기화하고 둘 사이에 차이점을 두지 않습니다. rsync가 Directory1에없는 파일이 Directory2에 있음을 발견하면 삭제합니다. rsync가 Directory1에서 변경, 생성 또는 삭제 된 파일을 찾으면 동일한 변경 사항을 Directory2에 반영합니다.
rsync에 사용할 수있는 다양한 스위치가있어 사용자의 특정 요구에 맞게 설정할 수 있습니다. 앞의 코드에서 rsync가 백업과 관련이 있음을 알 수 있습니다.
1. -a = 재귀 (디렉토리로 재귀), 링크 (심볼릭 링크로 심볼릭 링크 복사), perms (권한 보존), times (보존 시간), group (그룹 보존), owner 특수 파일 보존.
2. -v = 자세한 정보 표시. 자세한 정보가 중요하다고 생각하는 이유는 rsync가 백업중인 내용을 정확하게 볼 수 있기 때문입니다. 하드 드라이브의 상태가 좋지 않고 사용자가 알지 못하는 사이에 파일을 삭제하기 시작하면 rsync 스크립트를 실행하여 변경 사항을 백업에 적용하여 원치 않는 파일의 인스턴스를 모두 삭제합니다 을 제거하다?
3. -delete = Directory1에없는 파일을 Directory2에있는 모든 파일을 삭제하도록 rsync에 알립니다. 이 옵션을 사용하기로 결정한 경우 위에 언급 된 이유 때문에 자세한 옵션을 사용하는 것이 좋습니다..
위의 스크립트를 사용하여 rsync를 사용하여 Directory1을 Directory2로 백업하여 생성 된 결과는 다음과 같습니다. 자세한 스위치가 없으면 그런 자세한 정보를받지 못합니다..
위의 스크린 샷은 File1.txt와 File2.jpg가 Directory2에있는 사본에서 새 것으로 또는 다른 것으로 변경된 것으로 감지되어 백업되었음을 나타냅니다. 멍청이 팁 : 내 rsync 명령에서 디렉토리 끝에있는 슬래시에 주목하십시오. 필요하다면 반드시 기억해야합니다..
이 튜토리얼의 끝 부분에있는 몇 가지 유용한 스위치를 살펴 보겠다.하지만 전체 목록을 보려면 "man rsync"를 입력하고 사용할 스위치의 전체 목록을 볼 수있다..
로컬 백업에 관한 한 그 내용을 다루고 있습니다. 알 수 있듯이, rsync는 사용하기가 매우 쉽습니다. 인터넷을 통해 외부 호스트와 데이터를 동기화 할 때 약간 더 복잡해 지지만, 간단하고 빠르고 안전한 방법으로 보여줍니다..
외부 백업에 rsync 사용
rsync는 외부 백업을 위해 여러 가지 방법으로 구성 할 수 있지만 SSH를 통해 rsync를 터널링하는 가장 실용적인 (가장 쉽고 안전한) 방법을 살펴 보겠습니다. 대부분의 서버와 많은 클라이언트는 이미 SSH를 가지고 있으며 rsync 백업에 사용할 수 있습니다. 하나의 Linux 시스템을 로컬 네트워크의 다른 시스템에 백업하는 프로세스를 보여줍니다. 한 호스트가 어딘가 인터넷에 접속했다면 프로세스는 똑같습니다. 단지 포트 22 (또는 SSH를 구성한 포트)가 서버 측의 모든 네트워크 장비에서 전달되어야합니다.
서버 (백업을받을 컴퓨터)에서 SSH 및 rsync가 설치되어 있는지 확인하십시오.
# yum -y install ssh rsync
# sudo apt-get install ssh rsync
서버에 SSH 및 rsync를 설치하는 것 이외에 실제로 수행해야 할 작업은 파일을 백업 할 서버에 저장소를 설정하고 SSH가 잠겨 있는지 확인하는 것입니다. 사용하려는 사용자에게 복잡한 암호가 있는지 확인하고 SSH가 청취하는 포트를 전환하는 것이 좋습니다 (기본값은 22).
로컬 컴퓨터에서 rsync를 사용하는 것과 동일한 명령을 실행하지만 로컬 네트워크의 서버에 SSH를 통해 rsync를 터널링하는 데 필요한 추가 사항을 포함합니다. "geek"사용자가 "192.168.235.137"에 연결하고 위의 스위치 (-av -delete)와 동일한 스위치를 사용하여 다음을 실행합니다 :
$ rsync -av -delete -e ssh / Directory1 / [email protected] : / Directory2 /
SSH가 22가 아닌 다른 포트에서 수신 대기하는 경우이 예에서 포트 12345를 사용하는 것과 같이 포트 번호를 지정해야합니다.
$ rsync -av -delete -e 'ssh -p 12345'/ Directory1 / [email protected] : / Directory2 /
위의 스크린 샷에서 볼 수 있듯이 네트워크를 통해 백업 할 때 제공되는 출력은 로컬로 백업 할 때와 거의 동일합니다. 변경 사항은 사용하는 명령뿐입니다. 또한 암호를 묻는 메시지가 표시됩니다. 이것은 SSH로 인증하는 것입니다. 이 프로세스를 건너 뛰도록 RSA 키를 설정할 수 있으므로 rsync 자동화가 간단 해집니다..
rsync 백업 자동화
Linux에서는 Cron을 사용하여 rsync와 같은 명령 실행을 자동화 할 수 있습니다. Cron을 사용하면 Linux 시스템에서 야간 백업을 실행할 수 있습니다. 그러나 자주 실행해야 할 수도 있습니다..
로그인 한 사용자의 cron 테이블 파일을 편집하려면 다음을 실행하십시오.
$ crontab -e
이 파일을 편집하려면 vi에 익숙해야합니다. 삽입하려면 "I"를 입력하고 cron 테이블 파일 편집을 시작하십시오..
Cron은 다음 구문을 사용합니다. 분, 시간, 시간, 월, 월, 요일, 명령.
처음에는 조금 혼란 스러울 수 있으므로 예를 들어 설명해 드리겠습니다. 다음 명령은 매일 밤 10시에 rsync 명령을 실행합니다.
0 22 * * * rsync -av - 삭제 / 디렉토리 1 / / 디렉토리 2 /
첫 번째 "0"은시를 지정하고 "22"는 오후 10시를 지정합니다. 이 명령이 매일 실행되기를 원하기 때문에 나머지 필드는 별표로 남겨두고 rsync 명령을 붙여 넣습니다.
Cron 구성을 마쳤 으면 escape를 누른 다음 ": wq"(따옴표 제외)를 입력하고 Enter 키를 누릅니다. 그러면 vi에서 변경 사항이 저장됩니다..
Cron은 이것보다 훨씬 더 많은 것을 얻을 수 있지만이 튜토리얼의 범위를 벗어날 수 있습니다. 대부분의 사람들은 간단한 주간 또는 일일 백업을 원할 것입니다. 우리가 보여 주었던 것은 쉽게이를 달성 할 수 있습니다. Cron에 대한 자세한 정보는 매뉴얼 페이지를 참조하십시오..
기타 유용한 기능
당신이 할 수있는 또 다른 유용한 일은 zip 파일에 백업을 넣는 것입니다. zip 파일을 저장할 위치를 지정한 다음 해당 디렉토리를 백업 디렉토리에 rsync해야합니다. 예 :
$ zip /ZippedFiles/archive.zip / Directory1 / && rsync -av --delete / ZippedFiles / / Directory2 /
위의 명령은 Directory1에서 파일을 가져 와서 /ZippedFiles/archive.zip에 넣은 다음 해당 디렉토리를 Directory2로 rsync합니다. 처음에는 파일을 조금만 변경하면 zip 파일이 변경된다는 점을 감안할 때이 방법이 대규모 백업의 경우 비효율적이라고 생각할 수 있습니다. 그러나 rsync는 변경된 데이터 만 전송하므로 zip 파일이 10GB이고 Directory1에 텍스트 파일을 추가하면 rsync는 추가 한 모든 파일 (zip 파일 임에도 불구하고)을 인식하고 몇 킬로바이트 만 전송합니다 변경된 데이터.
rsync 백업을 암호화 할 수있는 여러 가지 방법이 있습니다. 가장 쉬운 방법은 하드 드라이브 자체 (파일을 백업 할 대상)에 암호화를 설치하는 것입니다. 또 다른 방법은 파일을 원격 서버 (또는 다른 하드 드라이브, 백업 할 대상)에 보내기 전에 파일을 암호화하는 것입니다. 이 방법은 이후 기사에서 다루겠습니다..
rsync가 선택한 옵션과 기능은 현재까지 가장 효율적이고 다양한 백업 도구 중 하나임이 입증되었으며 간단한 rsync 스크립트로도 데이터 손실을 막을 수 있습니다.