
리눅스 rsync 명령은 강력한 파일 복사 및 폴더 동기화 도구입니다. 다음은 자신의 시스템에서 잘 사용할 수 있는 10가지 일반적인 사용 사례입니다.
재동기화 도구
그만큼 rsync 이 도구는 두 컴퓨터 간에 파일과 디렉터리를 복사합니다. 대상 컴퓨터에 없는 원본 컴퓨터의 파일을 찾기 위해 디렉터리 트리를 검색하는 정교한 알고리즘을 사용합니다. 이러한 파일은 대상 컴퓨터로 전송됩니다. 무엇을 만드는가 rync 너무 똑똑해서 어떤 부분을 기존의 파일이 수정되었으며 변경된 부분.
당신이 사용할 수있는 rsync 하드 드라이브의 다른 위치, 동일한 컴퓨터의 다른 하드 드라이브, 외부적으로 연결된 USB 드라이브 또는 기타 네트워크 액세스 가능 위치에 파일을 복사합니다.
그 위에, rsync 기호 링크, 하드 링크 및 파일 소유권, 권한 및 액세스 시간과 같은 파일 메타데이터를 선택적으로 보존할 수 있습니다. 이 모든 기능을 지원하려면 rsync 많은 옵션이 있으며 모든 옵션을 파악하는 데 시간이 걸립니다. 시작하는 데 도움이 되도록 이 10가지 예를 수집했습니다. 우리는 이미 백업 수행에 대해 작성했습니다. rsync 그래서 우리는 여기에서 다른 용도에 집중하고 있습니다.
많은 옵션에 대해 구조 rsync 명령은 간단합니다. 소스, 대상 및 사용하려는 옵션을 제공해야 합니다. 당신은 아마 그것을 찾을 것입니다 rsync 은(는) 이미 Linux 컴퓨터에 설치되어 있습니다(모든 테스트 시스템에 설치되어 있음). 그러나 그렇지 않은 경우 배포의 저장소에 있을 것입니다.
1. 다른 디렉토리에 파일 복사
여기 우리를 시작하는 간단한 예가 있습니다. “project-files” 디렉토리에서 “Documents” 디렉토리로 파일을 복사할 것입니다. 우리는 두 가지 옵션을 사용하고 있습니다. -a (아카이브) 옵션 및 -v (상세) 옵션. verbose 옵션은 rsync 그것이 하는 대로 무엇을 하는지 설명하기 위해. 그만큼 archive 옵션은 파일 소유권과 우리가 곧 보게 될 다른 항목을 보존합니다.
명령의 형식은 options source-location destination-location.
rsync -av /home/dave/project-files/ /home/dave/Documents/

사용 ls “Documents” 폴더에 파일이 복사되었음을 나타냅니다.

하는 동안 rsync 작동 중이면 파일이 복사되는 대로 나열됩니다. 들었다:
- 전송된 바이트 수입니다.
- 수신된 바이트 수입니다. 파일 전송이 이루어지기 전에,
rsync어떤 파일을 전송해야 하는지 해결해야 합니다. 그렇게 하려면 대상에 있는 파일에 대한 일부 정보를 다음을 통해 검색해야 합니다.rsync. 이 정보는 수신된 바이트에 포함됩니다. - 전송 속도입니다.
- 복사된 파일의 총 크기입니다.
- “속도 향상.” 이것은 전송된 바이트와 수신된 바이트의 합으로 나눈 총 크기의 비율입니다. 이 숫자가 높을수록 전송이 더 효율적입니다.
소스 디렉토리의 텍스트 파일을 수정하고 반복했습니다. rsync 명령.
rsync -av /home/dave/project-files/ /home/dave/Documents/

이번에 업데이트해야 할 유일한 파일은 우리가 수정한 텍스트 파일입니다. 속도 향상 수치는 이제 30,850입니다. 이것은 모든 파일을 복사하는 것보다 해당 단일 파일의 수정된 부분을 복사하는 것이 얼마나 더 효율적인가입니다.
그만큼 -a (아카이브) 옵션은 실제로 다른 옵션의 모음을 나타냅니다. 다음 옵션을 모두 사용하는 것과 같습니다.
- 아르 자형: 소스 디렉토리의 디렉토리 트리를 통해 재귀적으로 작업하고 대상 디렉토리에 복사하여 아직 존재하지 않는 경우 생성합니다.
- 엘: 심볼릭 링크를 심볼릭 링크로 복사합니다.
- 피: 파일 권한을 유지합니다.
- 티: 파일 수정 시간을 유지합니다.
- g: 그룹 권한을 유지합니다.
- 영형: 파일 소유권을 유지합니다.
- 디: 특수 파일 및 장치 파일을 복사합니다. 특수 파일은 소켓 및 선입선출 파이프(fifos)와 같이 파일처럼 취급되는 통신 중심 항목일 수 있습니다. 장치 파일은 장치 및 의사 장치에 대한 액세스를 제공하는 특수 파일입니다.
그만큼 자주 사용하는 조합이다. rsync 제공 -a (아카이브) 옵션을 모두 호출하는 약식 방법으로 사용합니다.
2. 디렉토리를 다른 디렉토리로 복사
이전 내용을 보면 rsync 명령을 실행하면 소스 디렉토리의 파일 경로에 슬래시 “/”가 표시됩니다. 이것은 중요합니다. 그것은 말한다 rsync 복사하다 내용물 디렉토리의. 후행 슬래시를 제공하지 않으면 rsync 디렉토리를 복사합니다 그리고 그 내용.
rsync -av /home/dave/project-files /home/dave/Documents/

이번에는 디렉토리 이름이 나열된 대로 파일 이름에 추가됩니다. 대상 디렉토리 내부를 보면 소스 폴더가 그 안에 있는 파일과 함께 복사된 것을 볼 수 있습니다.
ls Documents/
ls Documents/project-files/

3. 디렉토리를 다른 드라이브에 복사
동일한 하드 드라이브의 다른 위치에 파일을 복사해도 드라이브 오류에 대한 보호 기능이 제공되지 않습니다. 해당 드라이브가 고스트를 포기하면 해당 파일의 원본 및 대상 복사본을 잃게 됩니다. 다른 하드 드라이브에 복사하는 것이 데이터를 보호하는 훨씬 더 강력한 방법입니다. 목적지 드라이브에 대한 올바른 경로를 제공하기만 하면 됩니다.
rsync -av /home/dave/project-files /run/mount/drive2

다른 하드 드라이브를 보면 디렉터리와 파일이 복사되었음을 알 수 있습니다.
ls run/mount/drive2/project-files/

관련된: 하드 드라이브에 장애가 발생했을 때 수행할 작업
4. 먼저 테스트 실행하기
방법을 살펴보기 전에 rsync 파일을 유용하게 삭제할 수 있습니다. rsync 드라이 런을 수행하십시오.
드라이 런에서, rsync 우리가 요청한 작업을 수행하는 동작을 거치지만 실제로 수행하지는 않습니다. 명령이 실행되었다면 어떤 일이 일어났는지 보고합니다. 이렇게 하면 명령이 우리가 기대하는 것과 정확히 일치하는지 확인할 수 있습니다.
강제 실행을 위해 우리는 --dry-run 옵션.
rsync -av --dry-run /home/dave/geocoder /run/mount/drive2

복사되었을 파일이 우리를 위해 나열되고 일반적인 통계를 얻은 다음 메시지가 표시됩니다. (DRY RUN) 실제로 아무 일도 일어나지 않았음을 알 수 있습니다.
5. 대상 디렉토리에서 파일 삭제
그만큼 --delete 옵션이 알려줍니다 rsync 파일과 디렉토리를 삭제하려면 목적지 소스 디렉토리에 없는 디렉토리. 이는 대상 디렉토리가 소스 디렉토리의 정확한 사본이 됨을 의미합니다. 신중하게 사용하겠습니다. --dry-run 먼저 옵션.
rsync -av --delete --dry-run /home/dave/geocoder /run/mount/drive2

2개의 파일이 삭제됨을 알려드립니다. 그들이 삭제되는 것을 신경쓰지 않는다고 확신하는 경우 --dry-run 옵션을 선택하고 실제로 명령을 수행합니다.
rsync -av --delete /home/dave/geocoder /run/mount/drive2

이번에는 디렉토리의 내용이 동기화되고 두 개의 추가 파일이 삭제됩니다.
6. 소스 파일 삭제
다음 후 소스 파일을 삭제하도록 선택할 수 있습니다. 성공적인 전송만들기 rsync 복사보다 이동처럼 작동합니다. 전송에 성공하지 못한 경우 원본 파일은 삭제되지 않습니다. 우리가 사용해야 하는 옵션은 --remove-source-files .
rsync -av --remove-source-files /home/dave/geocoder /run/mount/drive2

파일이 전송되지 않은 경우에도 파일을 삭제할 수 있습니다. 그 이유는 만약 rsync 확인하고 모든 파일이 이미 대상 디렉토리에 있으며 rsync 할 것, rsync 성공적인 이전으로 간주합니다.
또한, rsync 삭제만 파일 소스 디렉토리에서. 소스 디렉토리나 하위 디렉토리는 삭제하지 않고 그 안에 있는 파일만 삭제합니다. 우리는 이것을 사용하여 볼 수 있습니다 -R (재귀) 옵션 ls소스 디렉토리에 있습니다.
ls -R geocoder

7. 원격 컴퓨터에 파일 복사
폴더를 원격 컴퓨터와 동기화하려면 rsync 두 컴퓨터에 모두 설치되어 있어야 합니다. 사용을 시도하기 전에 두 컴퓨터 간에 SSH 통신을 설정하십시오. rsync 원격 컴퓨터에.
원격 컴퓨터에서 일반 사용자로 원격 로그인할 수 있어야 합니다. rsync 일하다. 아이디와 비밀번호를 사용하여 로그인하든, 안전한 비밀번호 없는 액세스를 위해 SSH 키를 설정했는지 여부는 중요하지 않지만 사용자로 로그인할 수 없는 경우에는 rsync 작동하지 않습니다.
비밀번호로 로그인하면, rsync 암호를 묻는 메시지가 표시됩니다. SSH 키를 사용하여 로그인하면 프로세스가 원활합니다.
추가로 해야 할 일은 사용자 계정 이름과 원격 컴퓨터의 IP 주소를 대상 파일 경로의 시작 부분에 추가하는 것입니다. at 기호를 사용하십시오 “@” 사용자 이름을 컴퓨터 이름 또는 IP 주소와 구분하고 콜론 “:“를 사용하여 디렉터리 경로에서 컴퓨터 이름 또는 IP 주소를 구분합니다.
테스트 네트워크에서 이 두 명령은 동일합니다.
rsync -av /home/dave/geocoder dave@nostromo.local:/home/dave/Downloads
rsync -av /home/dave/geocoder dave@192.168.86.60:/home/dave/Downloads

파일을 로컬로 복사할 때와 동일한 정보가 보고됩니다.
8. 파일 또는 디렉토리 포함 또는 제외
대상 컴퓨터에 복사하고 싶지 않은 파일과 디렉터리가 원본 디렉터리에 있을 수 있습니다. 다음을 사용하여 제외할 수 있습니다. --exclude 옵션. 비슷한 방법으로 특정 파일과 디렉토리를 포함하도록 선택할 수 있습니다. --include 옵션.
단점은 사용하면 --include 옵션 자체를 사용하면 특별히 포함된 파일을 포함하여 모든 파일이 정상적으로 복사됩니다. 포함된 파일만 복사하려면 --exclude 다른 모든 것.
당신은 많은 것을 사용할 수 있습니다 --include 그리고 --exclude 원하는 대로 명령에 옵션을 추가하지만 --include 당신의 앞에 옵션 --exclude 옵션. 또한 소스 파일 경로에 슬래시가 있는지 확인하십시오.
이 명령은 C 소스 코드 파일과 CSV 데이터 파일만 대상 컴퓨터에 복사합니다.
rsync -av --include="*.c" --include="*.csv" --exclude="*" /home/dave/geocoder/ /run/mount/drive2/geocoder

복사된 유일한 파일은 특별히 포함된 파일입니다.
9. 전송 중인 파일 압축
그만큼 -z (압축) 옵션 원인 rsync 전송된 파일을 압축합니다. 그러나 대상 컴퓨터에 압축된 파일로 저장되지 않고 전송 자체 중에만 압축됩니다. 이렇게 하면 긴 전송 속도를 높일 수 있습니다.
rsync -avz /home/dave/geocoder /run/mount/drive2

10. 진행 상황 모니터링
긴 전송에 대해 말하면 전송 진행 상황을 볼 수 있도록 몇 가지 통계를 추가할 수 있습니다.
그만큼 -P (부분, 진행) 옵션은 실제로 두 가지 옵션을 추가합니다. --partial 그리고 --progress . 그만큼 --partial 옵션이 알려줍니다 rsync 전송이 실패할 경우 부분적으로 전송된 파일을 유지합니다. 이렇게 하면 전송이 다시 시작될 때 시간이 절약됩니다.
그만큼 --progress 옵션은 각 파일에 대해 전송된 데이터를 바이트 단위로 인쇄하고 전송 속도, 소요 시간, 전송 중인 파일 수 및 나머지 파일 수를 백분율로 인쇄합니다.
rsync -aP /home/dave/geocoder /run/mount/drive2

출력이 꽤 빨리 스크롤되어 읽기가 어렵습니다. 제거하여 상황을 약간 개선할 수 있습니다. -v (verbose) 옵션을 명령에서. 그럼에도 불구하고 여전히 윙윙 거리는 소리로 읽기가 어렵습니다.

전체 전송의 진행 상황을 모니터링하는 것이 더 유용한 경우가 많습니다. –info 옵션을 사용하여 이를 수행하고 매개변수로 “progress2″를 전달할 수 있습니다.
sync -a --info=progress2 /home/dave/geocoder /run/mount/drive2

이것은 실제로 유용한 진행 보고서를 제공합니다.
스테로이드의 cp처럼
그만큼 rsync 이 명령은 빠르고 유연하며 익숙해지는 데 시간을 할애할 가치가 있습니다. 의 기본 형태 rsync 명령 -av 옵션, 소스 디렉토리 및 대상 디렉토리는 전혀 기억하기 어렵지 않습니다.
많은 사용 사례의 경우 그게 전부입니다. 그것에 익숙해지면 나머지는 쉽게 올 것입니다.
관련된: Rsync와 데이터 동기화에 대한 비초보자 가이드








