초보자를위한 Rsync로 데이터 동기화 가이드

Feb 11, 2025
개인 정보 보호 및 보안
캐치되지 않은 콘텐츠

rsync 프로토콜은 일반 백업 / 동기화 작업에 사용하기 매우 간단 할 수 있지만 일부 고급 기능은 사용자를 놀라게 할 수 있습니다. 이 기사에서는 가장 큰 데이터 수집가와 백업 애호가조차도 모든 데이터 중복 요구 사항에 대한 단일 솔루션으로 rsync를 사용할 수있는 방법을 보여줄 것입니다.

경고 : 고급 괴짜 전용

"도대체 rsync가 뭐야?"라고 생각하고 있다면 또는“저는 정말 간단한 작업에만 rsync를 사용합니다.”에 대한 이전 기사를 확인하는 것이 좋습니다. rsync를 사용하여 Linux에서 데이터를 백업하는 방법 는 rsync에 대한 소개를 제공하고 설치 과정을 안내하며 더 기본적인 기능을 보여줍니다. rsync를 사용하는 방법을 확실히 이해하고 (솔직히 복잡하지는 않습니다) Linux 터미널에 익숙해지면이 고급 가이드로 이동할 준비가 된 것입니다.

Windows에서 rsync 실행

먼저, Linux 전문가와 동일한 페이지에서 Windows 독자를 확보합시다. rsync는 Unix 계열 시스템에서 실행되도록 구축되었지만 Windows 에서처럼 쉽게 사용할 수 없어야 할 이유가 없습니다. Cygwin rsync를 실행하는 데 사용할 수있는 멋진 Linux API를 생성하므로 해당 웹 사이트로 이동하여 32 비트 또는 64 비트 버전, 컴퓨터에 따라 다릅니다.

설치는 간단합니다. "패키지 선택"화면이 나타날 때까지 모든 옵션을 기본값으로 유지할 수 있습니다.

이제 Vim과 SSH에 대해 동일한 단계를 수행해야하지만 패키지를 선택하면 패키지가 약간 다르게 보일 것이므로 다음과 같은 스크린 샷이 있습니다.

Vim 설치 :

SSH 설치 :

이 세 가지 패키지를 선택한 후 설치가 완료 될 때까지 다음을 계속 클릭합니다. 그런 다음 설치 프로그램이 바탕 화면에 배치 한 아이콘을 클릭하여 Cygwin을 열 수 있습니다.

rsync 명령 : 단순에서 고급까지

이제 Windows 사용자가 같은 페이지에 있으므로 간단한 rsync 명령을 살펴보고 일부 고급 스위치를 사용하여 신속하게 복잡하게 만드는 방법을 살펴 보겠습니다.

백업이 필요한 많은 파일이 있다고 가정 해 보겠습니다. 요즘 누가 그렇지 않습니까? 컴퓨터 파일을 백업 할 수 있도록 휴대용 하드 드라이브를 연결하고 다음 명령을 실행합니다.

rsync -a / home / geek / files / / mnt / usb / files /

또는 Cygwin이 설치된 Windows 컴퓨터에서 표시되는 방식 :

rsync -a / cygdrive / c / files / / cygdrive / e / files /

매우 간단하며, 파일을 끌어다 놓기 만하면 rsync를 사용할 필요가 없습니다. 그러나 다른 하드 드라이브에 이미 일부 파일이 있고 업데이트 된 버전과 마지막 동기화 이후 생성 된 파일 만 필요한 경우이 명령은 새 데이터를 하드 드라이브로 보내기 만하기 때문에 편리합니다. 대용량 파일, 특히 인터넷을 통해 파일을 전송하는 것은 큰 문제입니다.

파일을 외장 하드 드라이브에 백업 한 다음 하드 드라이브를 컴퓨터와 같은 위치에 보관하는 것은 매우 나쁜 생각이므로 인터넷을 통해 다른 컴퓨터로 파일을 보내기 시작하는 데 필요한 사항을 살펴 보겠습니다 ( 당신이 빌린 사람, 가족 구성원 등).

rsync -av --delete -e 'ssh -p 12345'/ home / geek / files / [email protected] : / home / geek2 / files /

위의 명령은 IP 주소가 10.1.1.1 인 다른 컴퓨터로 파일을 보냅니다. 소스 디렉토리에 더 이상 존재하지 않는 대상에서 불필요한 파일을 삭제하고 전송중인 파일 이름을 출력하여 무슨 일이 일어나고 있는지 파악한 다음 포트 12345에서 SSH를 통해 rsync를 터널링합니다.

그만큼 -а -в -е --делете 스위치는 가장 기본적이고 일반적으로 사용되는 일부입니다. 이 튜토리얼을 읽고 있다면 이미 그들에 대해 잘 알고있을 것입니다. 때때로 무시되지만 매우 유용한 다른 스위치를 살펴 보겠습니다.

--진행 –이 스위치를 사용하면 각 파일의 전송 진행률을 볼 수 있습니다. 인터넷을 통해 대용량 파일을 전송할 때 특히 유용하지만 빠른 네트워크를 통해 작은 파일을 전송하는 경우에는 무의미한 양의 정보를 출력 할 수 있습니다.

rsync 명령 --진행 백업이 진행 중일 때 전환 :

-부분 – 이것은 인터넷을 통해 대용량 파일을 전송할 때 특히 유용한 또 다른 스위치입니다. 파일 전송 도중 rsync가 중단되는 경우 부분적으로 전송 된 파일은 대상 디렉터리에 보관되고 rsync 명령이 다시 실행되면 중단 된 위치에서 전송이 다시 시작됩니다. 인터넷을 통해 대용량 파일 (예 : 몇 기가 바이트)을 전송할 때 몇 초간 인터넷 중단, 블루 스크린 또는 인적 오류로 인해 파일 전송이 중단되어 다시 시작해야하는 것보다 더 나쁜 것은 없습니다.

-피 –이 스위치는 --진행 -부분 , 대신 사용하면 rsync 명령이 조금 더 깔끔해집니다.

-와 또는 --압박 붕대 –이 스위치는 전송되는 rsync가 파일 데이터를 압축하도록하여 대상으로 보내야하는 데이터의 양을 줄입니다. 실제로는 상당히 일반적인 스위치이지만 필수적인 것과는 거리가 멀고 느린 연결 사이의 전송에만 도움이되며 7z, avi, bz2, deb, g, z iso, jpeg, jpg, mov, mp3, mp4, ogg, rpm, tbz, tgz, z, zip.

-h 또는 -인간이 읽을 수있는 – 사용하는 경우 --진행 이 스위치도 사용하고 싶을 것입니다. 즉, 바이트를 즉석에서 메가 바이트로 변환하지 않으려는 경우입니다. 그만큼 -h switch는 출력 된 모든 숫자를 사람이 읽을 수있는 형식으로 변환하므로 전송되는 데이터의 양을 실제로 이해할 수 있습니다.

-엔 또는 -드라 이런 –이 스위치는 rsync 스크립트를 처음 작성하고 테스트 할 때를 아는 데 필수적입니다. 시험 실행을 수행하지만 실제로 변경하지는 않습니다. 변경 될 예정인 변경 사항은 여전히 ​​정상적으로 출력되므로 스크립트를 프로덕션으로 롤링하기 전에 모든 내용을 읽고 괜찮아 보이는지 확인할 수 있습니다.

-아르 자형 또는 --상대적인 – 대상 디렉토리가 아직없는 경우이 스위치를 사용해야합니다. 이 가이드의 뒷부분에서이 옵션을 사용하여 폴더 이름에 타임 스탬프가있는 대상 컴퓨터에 디렉터리를 만들 수 있습니다.

-제외에서 –이 스위치는 백업하지 않을 디렉토리 경로가 포함 된 제외 목록에 연결하는 데 사용됩니다. 각 행에 디렉토리 또는 파일 경로가있는 일반 텍스트 파일 만 있으면됩니다.

-포함에서 - 비슷하다 -제외에서 하지만 백업하려는 데이터의 디렉토리 및 파일 경로가 포함 된 파일에 연결됩니다.

-통계 – 실제로 중요한 스위치는 아니지만 시스템 관리자 인 경우 각 백업의 자세한 통계를 아는 것이 편리 할 수 ​​있으므로 네트워크 등을 통해 전송되는 트래픽 양을 모니터링 할 수 있습니다.

-로그 파일 – 이렇게하면 rsync 출력을 로그 파일로 보낼 수 있습니다. 사용자가 직접 출력을 읽을 수없는 자동 백업에이 방법을 사용하는 것이 좋습니다. 모든 것이 제대로 작동하는지 확인하기 위해 항상 여가 시간에 로그 파일을 한 번만 제공하십시오. 또한 시스템 관리자가 사용하는 데 중요한 스위치이므로 인턴을 떠난 동안 백업이 어떻게 실패했는지 궁금해 할 필요가 없습니다.

몇 가지 스위치가 더 추가되었으므로 rsync 명령을 살펴 보겠습니다.

rsync -avzhP --delete --stats --log-file = / home / geek / rsynclogs / backup.log --exclude-from '/home/geek/exclude.txt'-e 'ssh -p 12345'/ home / geek / files / [email protected] : / home / geek2 / files /

명령은 여전히 ​​매우 간단하지만 여전히 적절한 백업 솔루션을 만들지 않았습니다. 파일이 현재 두 개의 물리적 위치에 있지만이 백업은 데이터 손실의 주요 원인 중 하나 인 사람의 실수로부터 우리를 보호하는 데 아무런 도움이되지 않습니다.

스냅 샷 백업

실수로 파일을 삭제하거나 바이러스로 인해 파일이 손상되거나 다른 일이 발생하여 파일이 원치 않게 변경된 다음 rsync 백업 스크립트를 실행하면 백업 된 데이터가 원하지 않는 변경 사항으로 덮어 쓰여집니다. 그러한 일이 발생하면 (만약 언제가 아니라) 백업 솔루션이 데이터 손실로부터 사용자를 보호하기 위해 아무것도하지 않았습니다.

rsync의 제작자는 이것을 깨닫고 --지원 -백업 디렉토리 사용자가 차등 백업을 실행할 수 있도록 인수. 매우 rsync 웹 사이트의 첫 번째 예 전체 백업이 7 일마다 실행 된 다음 해당 파일의 변경 사항이 매일 별도의 디렉토리에 백업되는 스크립트를 보여줍니다. 이 방법의 문제점은 파일을 복구하려면 7 번에 걸쳐 효과적으로 복구해야한다는 것입니다. 또한 대부분의 괴짜들은 하루에 여러 번 백업을 실행하므로 주어진 시간에 20 개 이상의 다른 백업 디렉토리를 쉽게 가질 수 있습니다. 지금 파일을 복구하는 것은 고통 스러울뿐만 아니라 백업 된 데이터를 살펴 보는 것만으로도 시간이 많이 걸릴 수 있습니다. 가장 최근에 백업 된 복사본을 찾으려면 파일이 마지막으로 변경된 시간을 알아야합니다. 무엇보다 매주 증분 백업을 실행하는 것은 비효율적입니다.

구조를위한 스냅 샷 백업! 스냅 샷 백업은 증분 백업에 불과하지만 하드 링크를 활용하여 원본 소스의 파일 구조를 유지합니다. 처음에는 머리를 감는 것이 어려울 수 있으므로 예제를 살펴 보겠습니다.

2 시간마다 데이터를 자동으로 백업하는 백업 스크립트가 실행중인 것으로 가정합니다. rsync가이 작업을 수행 할 때마다 백업-월-일-년-시간 형식으로 각 백업의 이름을 지정합니다.

따라서 일반적인 하루가 끝나면 대상 디렉토리에 다음과 같은 폴더 목록이 있습니다.

이러한 디렉토리를 순회 할 때 소스 디렉토리의 모든 파일이 당시와 동일하게 표시됩니다. 그러나 두 개의 디렉토리에 중복이 없습니다. rsync는 하드 링크를 사용하여이를 수행합니다. --link-dest = DIR 논의.

물론, 멋지고 깔끔한 날짜의 디렉토리 이름을 가지려면 rsync 스크립트를 약간 강화해야합니다. 이와 같은 백업 솔루션을 수행하는 데 필요한 사항을 살펴본 다음 스크립트에 대해 자세히 설명하겠습니다.

#! / Bin / Bash

# 이전 time.txt를 time2.txt에 복사

예 | cp ~ / backup / time.txt ~ / backup / time2.txt

# 새 시간으로 이전 time.txt 파일 덮어 쓰기

echo`날짜 +”% F- % I % p”`> ~ / backup / time.txt

# 로그 파일 만들기

echo ""> ~ / backup / rsync-`date + "% F- % I % p"`.log

#rsync 명령

rsync -avzhPR --chmod = Du = rwx, Dgo = rx, Fu = rw, Fgo = r --delete --stats --log-file = ~ / backup / rsync-`date +”% F- % I % p”`.log --exclude-from '~ / exclude.txt'--link-dest = / home / geek2 / files /`cat ~ / backup / time2.txt` -e 'ssh -p 12345'/ home / geek / files / [email protected] : / home / geek2 / files /`날짜 +”% F- % I % p”`/

# 로그 파일을 scp하고 백업과 함께 저장하는 것을 잊지 마십시오.

scp -P 12345 ~ / backup / rsync-`cat ~ / backup / time.txt`.log [email protected] : / home / geek2 / files /`cat ~ / backup / time.txt` / rsync-`cat ~ / backup / time.txt`.log

이것은 일반적인 스냅 샷 rsync 스크립트입니다. 어딘가에서 당신을 잃었을 경우를 대비해 하나씩 분석해 보겠습니다.

스크립트의 첫 번째 줄은 time.txt의 내용을 time2.txt로 복사합니다. yes 파이프는 파일을 덮어 쓸 것인지 확인하는 것입니다. 다음으로 현재 시간을 가져와 time.txt에 넣습니다. 이 파일은 나중에 유용하게 사용될 것입니다.

다음 줄은 rsync 로그 파일을 만들고 이름을 rsync-date.log로 지정합니다 (여기서 date는 실제 날짜 및 시간 임).

이제 경고했던 복잡한 rsync 명령은 다음과 같습니다.

-avzhPR, -e, --delete, --stats, --log-file, --exclude-from, --link-dest – 앞서 언급 한 스위치 만; 재교육이 필요하면 위로 스크롤하십시오.

ー ー ch도 d = 걸린 = rwx, D 숙박 = rx, 휴 = rw, F 숙박 = r – 대상 디렉토리에 대한 권한입니다. rsync 스크립트 중간에이 디렉토리를 만들고 있으므로 사용자가 파일을 쓸 수 있도록 권한을 지정해야합니다.

날짜 및 고양이 명령 사용

rsync 명령 내에서 date 및 cat 명령의 각 사용을 발생하는 순서대로 살펴 보겠습니다. 참고 : 특히 변수 선언을 사용하여이 기능을 수행하는 다른 방법이 있다는 것을 알고 있지만이 가이드에서는이 방법을 사용하기로 결정했습니다.

로그 파일은 다음과 같이 지정됩니다.

~ / backup / rsync-`date +”% F- % I % p”`.log

또는 다음과 같이 지정할 수 있습니다.

~ / backup / rsync-`cat ~ / backup / time.txt`.log

어느 쪽이든, -로그 파일 명령은 이전에 생성 된 날짜 로그 파일을 찾아서 쓸 수 있어야합니다.

링크 대상 파일은 다음과 같이 지정됩니다.

--link-dest = / home / geek2 / files /`cat ~ / backup / time2.txt`

이것은 --link-dest 명령에는 이전 백업의 디렉토리가 제공됩니다. 2 시간마다 백업을 실행 중이고이 스크립트를 실행 한 시점이 오후 4 시라면 --link-dest 명령은 2:00 PM에 생성 된 디렉토리를 찾고 그 이후로 변경된 데이터 만 전송합니다 (있는 경우).

다시 말하면, 스크립트 시작 부분에 time.txt가 time2.txt에 복사되는 이유입니다. --link-dest 명령은 나중에 해당 시간을 참조 할 수 있습니다.

대상 디렉토리는 다음과 같이 지정됩니다.

[email protected] : / home / geek2 / files /`날짜 +”% F- % I % p”`

이 명령은 현재 날짜와 시간의 제목이있는 디렉토리에 소스 파일을 넣습니다.

마지막으로 로그 파일의 복사본이 백업 내부에 있는지 확인합니다.

scp -P 12345 ~ / backup / rsync-`cat ~ / backup / time.txt`.log [email protected] : / home / geek2 / files /`cat ~ / backup / time.txt` / rsync-`cat ~ / backup / time.txt`.log

포트 12345에서 보안 사본을 사용하여 rsync 로그를 가져 와서 적절한 디렉토리에 배치합니다. 올바른 로그 파일을 선택하고 올바른 위치에 있는지 확인하려면 cat 명령을 통해 time.txt 파일을 참조해야합니다. date 명령을 사용하는 대신 cat time.txt를 선택한 이유가 궁금하다면 rsync 명령이 실행되는 동안 많은 시간이 발생할 수 있으므로 적절한 시간을 확보하기 위해 cat 앞서 만든 텍스트 문서입니다.

오토메이션

사용하다 Linux의 Cron 또는 Windows의 작업 스케줄러 rsync 스크립트를 자동화합니다. 주의해야 할 한 가지는 새 프로세스를 계속하기 전에 현재 실행중인 rsync 프로세스를 종료하는 것입니다. 작업 스케줄러는 이미 실행중인 인스턴스를 자동으로 닫는 것 같지만 Linux의 경우 좀 더 창의적이어야합니다.

대부분의 Linux 배포판은 pkill 명령을 사용할 수 있으므로 rsync 스크립트 시작 부분에 다음을 추가해야합니다.

pkill -9 rsync

암호화

아니요, 아직 끝나지 않았습니다. 마침내 환상적인 (그리고 무료!) 백업 솔루션이 마련되었지만 모든 파일은 여전히 ​​도난에 취약합니다. 수백 마일 떨어진 곳에 파일을 백업하고 있기를 바랍니다. 먼 곳이 아무리 안전하더라도 도난과 해킹은 항상 문제가 될 수 있습니다.

이 예에서는 SSH를 통해 모든 rsync 트래픽을 터널링 했으므로 모든 파일이 대상으로 전송되는 동안 암호화됩니다. 그러나 목적지가 안전한지 확인해야합니다. rsync는 데이터가 전송 될 때만 암호화하지만 파일이 대상에 도달하면 완전히 열려 있다는 점에 유의하십시오.

rsync의 가장 좋은 기능 중 하나는 각 파일의 변경 사항 만 전송한다는 것입니다. 모든 파일을 암호화하고 사소한 변경을 한 경우, 변경 후 모든 데이터를 완전히 무작위 화하는 암호화의 결과로 전체 파일을 다시 전송해야합니다.

이러한 이유로 다음과 같은 일부 유형의 디스크 암호화를 사용하는 것이 가장 좋습니다. BitLocker Windows 또는 dm-crypt Linux 용. 이렇게하면 도난시 데이터가 보호되지만 rsync로 파일을 전송할 수 있으며 암호화로 인해 성능이 저하되지 않습니다. rsync와 유사하게 작동하거나 Duplicity와 같은 일부 형식을 구현하는 다른 옵션이 있지만 rsync가 제공해야하는 일부 기능이 부족합니다.

오프 사이트 위치에서 스냅 샷 백업을 설정하고 소스 및 대상 하드 드라이브를 암호화 한 후에는 rsync를 마스터하고 가능한 가장 안전한 데이터 백업 솔루션을 구현하기 위해 자신을 칭찬하십시오.

How To Automatically Backup Data On Linux Using "rsync"

Ubuntu Server 18.04 Administration Guide Part 14 - Transferring Files With Rsync

Rsync For Windows 10

How To Backup And Encrypt Data Using Rsync And VeraCrypt On MacOS (see Change Log)

Rsync Backup On Linux

How To Copy & Transfer Data From Netgear ReadyNAS To Another NAS [Backup Using RSync]


개인 정보 보호 및 보안 - 가장 인기있는 기사

UFC 239 Jon Jones vs. Santos Online 스트리밍 방법

개인 정보 보호 및 보안 Oct 11, 2025

ESPN + UFC는 7 월 6 일 오늘 밤 라스 베이거스로 돌아옵니다. 라이트 헤비급 챔피언 존 존스가 티아고 산토스와 대결합니�..


새로운 CPU만이 ZombieLoad 및 Spectre를 진정으로 수정할 수 있습니다.

개인 정보 보호 및 보안 May 16, 2025

RMIKKA / Shutterstock 현재 CPU에는 설계 결함이 있습니다. Spectre는 그것들을 노출했지만 Foreshadow와 같은 공격과 이�..


Mozilla는 웹 기록을 추적하는 개인 정보 확장을 권장합니다.

개인 정보 보호 및 보안 Aug 16, 2025

캐치되지 않은 콘텐츠 현재 사용자가 200,000 명 이상인 Firefox 확장 프로그램 인 Web Security는 사용자가 방문하는 모든 웹 사이트를 추적하..


항상 개인 브라우징 모드에서 모든 브라우저를 시작하는 방법

개인 정보 보호 및 보안 May 7, 2025

시크릿 브라우징 모드는 완전한 개인 정보 보호를 제공하지 않습니다. 하지만 브라우저가 탐색 세션 사이에 방문 기록, 검색, �..


Facebook Messenger의 위치 추적을 끄는 방법 (켜져있는 경우)

개인 정보 보호 및 보안 Jun 12, 2025

캐치되지 않은 콘텐츠 모든 사람이 현재 위치를 추적하고있는 것 같습니다. 당연히 Facebook Messenger는 사용자의 위치 활동에 대한 상당한..


웹에서 HTTPS 및 SSL 보안과 관련된 5 가지 심각한 문제

개인 정보 보호 및 보안 Feb 13, 2025

SSL을 사용하는 HTTPS , 신원 확인 및 보안을 제공하므로 올바른 웹 사이트에 연결되어 있고 아무도 도청 할 수 없다는 것을 알 수 ..


2012 년의 Top 25 How-To Geek 기사

개인 정보 보호 및 보안 Dec 29, 2024

How-To Geek는 모든 독자들에게 감사하며 많은 기사에서 새롭고 흥미로운 것을 배웠기를 바랍니다. 2012 년에 How-To Geek에 게시 된 상위 25 개 �..


Google Authenticator 2 단계 인증을 사용하여 SSH를 보호하는 방법

개인 정보 보호 및 보안 Aug 14, 2025

사용하기 쉬운 2 단계 인증으로 SSH 서버를 보호하고 싶으십니까? Google은 Google Authenticator의 시간 기반 일회용 비밀번호 (TOTP) 시스템을 SSH ..


카테고리