15 Rsync 예제

15 Rsync Yeje



한 위치에서 다른 위치로 파일을 전송하는 것은 Linux 사용자에게 매우 일반적인 작업입니다. 이 작업을 수행하기 위해 Linux에서 많은 옵션을 사용할 수 있습니다. 'rsync'는 그 중 하나입니다. 'rsync'의 전체 형식은 '원격 동기화'입니다. 한 시스템에서 다른 시스템으로 로컬 또는 원격으로 파일 및 폴더를 복사하는 매우 유용한 동기화 도구입니다. 다른 동기화 도구보다 더 많은 이점이 있습니다. 이 도구는 기본적으로 Linux에 설치됩니다. 따라서 사용자는 설치할 필요가 없습니다. 'rsync' 명령의 장점과 용도는 이 튜토리얼에서 15개의 간단한 예제를 사용하여 보여줍니다.

'Rsync' 명령의 장점

  1. 수정되었거나 대상 위치에 존재하지 않는 파일만 원본 위치에서 대상 위치로 복사하기 때문에 다른 도구보다 빠릅니다.
  2. 불완전 전송을 지원합니다.
  3. 전송 중에 데이터를 압축하기 때문에 대역폭이 덜 필요합니다.
  4. 덜 중요한 데이터를 암호화 없이 전송할 수 있기 때문에 전송 오버헤드가 줄어듭니다.

통사론

'rsync' 명령의 구문은 다음과 같습니다.

rsync [옵션] 소스 대상

여기에서 소스 및 대상 경로는 로컬 또는 원격일 수 있습니다. 다양한 목적을 위해 이 명령과 함께 다양한 유형의 옵션을 사용할 수 있습니다.







'Rsync' 명령의 유용한 옵션

일반적으로 사용되는 'rsync' 명령의 일부 옵션은 다음에서 설명합니다.



옵션 목적
-와 함께 전송 중에 데이터를 압축하는 데 사용됩니다.
-아르 자형 파일 권한을 유지하지 않고 재귀적으로 데이터를 동기화하는 데 사용됩니다.
-ㅏ 모든 파일 권한을 유지하여 데이터를 재귀적으로 동기화하는 데 사용됩니다.
-비 전송 중 데이터 백업을 유지하는 데 사용됩니다.
-안에 자세한 형식으로 출력을 표시하는 데 사용됩니다.
-피 전송 진행 상황을 표시하는 데 사용됩니다.
-N 파일 또는 폴더를 전송하기 전에 동기화가 작동하는지 여부를 확인하는 데 사용됩니다.

15개의 'Rsync' 예제 목록

  1. 단일 파일 및 폴더를 로컬로 전송
  2. 여러 파일 및 폴더를 로컬로 전송
  3. 단일 파일 및 폴더를 원격으로 전송
  4. 여러 파일 및 폴더를 원격으로 전송
  5. 전송 진행률 표시
  6. 전송 중 데이터 압축
  7. 대역폭 제한으로 전송
  8. 재귀적으로 파일 및 폴더 전송
  9. 최소 크기 제한으로 전송
  10. 최대 크기 제한으로 전송
  11. 특정 유형의 파일 전송
  12. 소스 파일과 대상 파일 간의 차이점 표시
  13. 전송 중 파일 포함 또는 제외
  14. 건조 모드에서 데이터 동기화
  15. 전송 후 소스 파일 및 폴더 삭제

단일 파일 및 폴더를 로컬로 전송

'ls' 명령을 실행하여 현재 위치의 파일 및 폴더 목록을 표시합니다. 그런 다음 'rsync' 명령을 실행하여 'employees.txt' 파일을 로컬에서 'employees_copy.txt' 파일로 전송합니다. 'ls' 명령어를 다시 실행하여 파일이 제대로 전송되었는지 확인합니다.



$ ls
$ rsync 직원.txt 직원_복사.txt
$ ls

다음 출력은 'employee.txt' 파일이 성공적으로 전송되었음을 보여줍니다.





임시 폴더의 내용을 'courses.txt' 파일이 두 폴더에 있는 tempdir 폴더로 전송해야 한다고 가정합니다. 'ls temp' 명령을 실행하여 임시 폴더의 내용을 확인하십시오. 다음으로 'cat temp/courses.txt' 명령을 실행하여 이 파일의 내용을 확인합니다. 그런 다음 'ls tempdir' 명령을 실행하여 tempdir 폴더의 내용을 확인합니다. 다음으로 'cat tempdir/courses.txt' 명령을 실행하여 이 파일의 내용을 확인합니다.



$ ls 온도
$ 고양이 임시/코스.txt
$ lstempdir
$ 고양이 tempdir/courses.txt

출력 결과는 temp 및 tempdir 폴더의 'courses.txt' 파일 내용이 약간 다르며 tempdir 폴더의 'courses.txt' 파일이 tempdir 폴더의 'courses.txt' 파일보다 더 많은 데이터를 포함하고 있음을 보여줍니다. .

다음 명령을 실행하여 임시 폴더의 내용을 tempdir 폴더로 전송하고 tempdir 폴더의 'courses.txt' 파일 내용을 확인하여 파일이 제대로 업데이트되었는지 확인합니다.

$ rsync -a 임시/ tempdir/
$ lstempdir
$ 고양이 tempdir/courses.txt

다음 출력은 임시 폴더의 내용이 tempdir 폴더로 제대로 전송되고 tempdir 폴더의 'courses.txt' 파일 내용이 제대로 업데이트되었음을 ​​보여줍니다.

여러 파일 및 폴더를 로컬로 전송

'rsync' 명령을 사용하여 여러 파일과 폴더를 로컬로 전송할 수 있습니다. 다음 명령을 실행하여 'ping1.bash' 및 'ping2.bash' 파일을 tempdir 폴더로 전송하고 전송 후 tempdir 폴더의 내용을 확인하십시오. -v 옵션은 'rsync' 명령과 함께 사용되어 자세한 형식으로 출력을 표시합니다.

$ rsync -v ping1.bash ping2.bash tempdir/
$ lstempdir

다음 출력은 여러 파일이 tempdir 폴더로 제대로 전송되었음을 보여줍니다.

다음 명령을 실행하여 temp, tempdir 및 test 폴더의 내용을 확인하고 test 및 tempdir 폴더의 내용을 temp 폴더로 전송합니다.

$ ls 온도
$ lstempdir
$ ls 테스트
$ rsync -av test/ tempdir/ temp/
$ ls 온도

출력은 test 및 tempdir 폴더의 내용이 temp 폴더로 성공적으로 전송되었음을 보여줍니다. 'customers.csv', 'ping1.bash' 및 'ping2.bash' 파일이 임시 폴더에 새 파일로 추가됩니다.

단일 파일 및 폴더를 원격으로 전송

파일 및 폴더를 원격으로 전송하려면 원격 위치에 SSH 서버를 설치하고 구성해야 합니다. 당신은 이것을 확인할 수 있습니다 지도 시간 SSH 서버를 구성합니다.

다음 명령을 실행하여 현재 위치의 'courses.txt' 파일 크기를 확인합니다.

ls -la 코스.txt

출력은 'courses.txt' 파일의 크기가 65바이트임을 보여줍니다.

다음 명령을 실행하여 'courses.txt'를 /홈/우분투/코스/ 원격 위치의 폴더, ubuntu@192.168.0.101. 파일을 전송하기 전에 원격 시스템의 루트 비밀번호를 제공해야 합니다.

rsync -v course.txt ubuntu@192.168.0.101:/home/ubuntu/courses/

다음 출력은 'courses.txt' 파일이 원격 시스템으로 제대로 전송되고 파일 크기가 65바이트임을 보여줍니다.

다음 명령을 실행하여 임시 폴더를 /홈/우분투/코스/ 원격 위치의 폴더, ubuntu@192.168.0.101. 이전 명령과 같이 파일을 전송하기 전에 원격 시스템의 루트 암호를 제공해야 합니다.

rsync -av temp/ ubuntu@192.168.0.101:/home/ubuntu/courses/

다음 출력은 임시 폴더의 내용이 원격 시스템으로 제대로 전송되었음을 보여줍니다.

여러 파일 및 폴더를 원격으로 전송

다음 'rsync' 명령은 'customers.csv' 및 'department.json' 파일을 /홈/우분투/파일/ 원격 위치의 폴더, ubuntu@192.168.0.101.

rsync -av customers.csv department.json ubuntu@192.168.0.101:/home/ubuntu/files/

다음 출력은 여러 파일이 원격 위치로 성공적으로 전송되었음을 보여줍니다.

다음 'rsync' 명령은 임시 및 테스트 폴더와 'department.json' 파일의 내용을 /홈/우분투/파일/ 원격 위치의 폴더, ubuntu@192.168.0.101.

rsync -av temp/ test/ department.json ubuntu@192.168.0.101:/home/ubuntu/files/

다음 출력은 여러 폴더의 콘텐츠가 원격 위치로 성공적으로 전송되었음을 보여줍니다.

전송 진행률 표시

-progress 옵션과 함께 'rsync' 명령을 실행하여 tempdir 폴더의 내용을 진행률 정보와 함께 temp_copy 폴더로 전송합니다.

rsync -a tempdir/ temp_copy --progress

다음 출력은 temp_copy 디렉토리가 로컬로 생성되고 tempdir 폴더의 내용이 temp_copy 폴더로 성공적으로 전송되었음을 보여줍니다.

전송 중 데이터 압축

–z 옵션과 함께 다음 'rsync' 명령을 실행하여 tempdir 디렉토리를 로컬에서 테스트 디렉토리로 압축하고 전송합니다.

rsync -za tempdir/테스트/

다음 출력은 압축된 디렉토리가 로컬로 성공적으로 전송되었음을 보여줍니다.

대역폭 제한으로 전송

값이 100인 –bwlimit 옵션과 함께 다음 'rsync' 명령을 실행하여 /etc/passwd 파일을 임시 폴더로 로컬로 전송합니다.

rsync -v --bwlimit=100 etc/passwd temp/

다음 출력은 passwd 파일이 성공적으로 전송되었음을 보여줍니다.

재귀적으로 파일 및 폴더 전송

-rv 옵션과 함께 다음 'rsync' 명령을 실행하여 테스트 폴더를 로컬에서 test_bak 폴더로 전송합니다.

rsync -rv 테스트/ test_bak/

다음 출력은 테스트 폴더가 test_bak 폴더로 성공적으로 전송되었음을 보여줍니다.

최소 크기 제한으로 전송

'rsync' 명령을 사용한 파일 및 폴더 전송은 -min-size 옵션을 사용하여 파일 및 폴더 전송의 최소 크기 제한을 설정하여 제한할 수 있습니다. 다음 'ls -la tempdir' 명령을 실행하여 이 폴더의 각 파일 및 폴더 크기를 확인합니다. 그런 다음 'rsync' 명령을 실행하여 tempdir 폴더의 내용을 최소 크기 제한이 있는 tempdir_bak 폴더로 전송합니다.

ls -la tempdir
rsync -av --min-size='245B' tempdir/tempdir_bak

다음 출력은 최소 크기와 일치하는 두 개의 파일이 tempdir 폴더에 있음을 보여줍니다. 'ping1.bash'(248바이트) 및 'test.txt'(34504바이트)입니다. 이러한 파일은 tempdir_bak 폴더로 전송되고 tempdir 폴더의 다른 파일은 생략됩니다.

최대 크기 제한으로 전송

'rsync' 명령을 사용한 파일 및 폴더 전송은 -max-size 옵션을 사용하여 파일 및 폴더 전송의 최대 크기 제한을 설정하여 제한할 수 있습니다. 다음 'ls -la temp' 명령을 실행하여 이 폴더의 각 파일 및 폴더 크기를 확인합니다. 다음으로 'rsync' 명령을 실행하여 임시 폴더의 내용을 최대 크기 제한이 있는 temp_bak 폴더로 전송합니다.

ls -라 임시
rsync --max-size='250B' temp/ temp_bak/

다음 출력은 임시 폴더에 최대 크기 제한과 일치하는 4개의 파일이 있음을 보여줍니다. 이들은 'courses.txt'(65바이트), 'employees.csv'(361바이트), 'ping1.bash'(248바이트) 및 'ping2.bash'(244바이트)입니다. 이러한 파일은 temp_bak 폴더로 전송되고 temp 폴더의 다른 파일은 생략됩니다.

특정 유형의 파일 전송

전송할 파일의 종류는 'rsync' 명령에서 파일의 확장자를 언급하여 설정할 수 있습니다. 다음 'rsync' 명령을 실행하여 temp 폴더의 모든 텍스트 파일을 mydir 폴더로 전송합니다. 여기서 텍스트 파일의 확장자는 '*.txt'를 사용하여 표시됩니다.

rsync -v temp/*.txt mydir/

다음 출력은 'courses.txt' 및 'test.txt'라는 두 개의 텍스트 파일이 mydir 폴더로 전송되고 임시 폴더의 다른 파일은 생략되었음을 보여줍니다.

소스 파일과 대상 파일 간의 차이점 표시

파일 또는 폴더가 로컬 또는 원격으로 한 위치에서 다른 위치로 전송될 때 두 위치 모두 동일한 파일 또는 폴더를 포함할 수 있습니다. 전송 중 소스와 대상 간의 차이는 'rsync' 명령과 함께 -i 옵션을 사용하여 검사할 수 있습니다. 다음 'cat' 명령을 실행하여 전송하기 전에 소스 및 대상 파일의 내용을 확인하십시오. 여기에서 'courses.txt' 파일이 임시 폴더로 전송됩니다.

고양이 코스.txt
고양이 임시/courses.txt
rsync -avi course.txt 임시/

다음 출력은 소스와 대상의 'courses.txt' 파일이 약간 다르다는 것을 보여줍니다. 'rsync' 명령의 출력은 파일 간의 차이점을 보여줍니다.

건조 모드에서 데이터 동기화

실제 전송 전에 'rsync' 명령으로 어떤 파일과 폴더가 전송되는지 알고 싶다면 -dry-run 옵션 또는 -n 옵션과 함께 'rsync' 명령을 실행하는 것이 좋습니다. 이 옵션과 함께 'rsync' 명령을 실행하면 소스 폴더에서 대상 폴더로 복사되는 파일 또는 폴더를 확인하지만 대상 폴더는 변경되지 않습니다. “ls –la department.json” 파일을 실행하여 파일 크기를 확인합니다. 다음으로 –dry-run 모드로 “rsync” 명령을 실행하여 “department.json”이 임시 폴더로 전송되었는지 확인합니다.

ls -la 부서.json
rsync -v --dry-run department.json temp/

다음 출력은 'department.json' 파일의 크기가 1172바이트임을 보여줍니다. –dry-run 옵션과 함께 'rsync' 명령을 실행한 후 파일 크기는 1172바이트로 표시됩니다.

전송 중 파일 포함 또는 제외

–include 및 –exclude 옵션을 사용하여 원본 위치에서 대상 위치로 전송할 때 파일 유형을 필터링할 수 있습니다. 'optionsinclude' 옵션은 소스에서 대상으로 전송될 파일의 ​​확장자를 정의하는 데 사용됩니다. –exclude 옵션은 소스에서 대상으로 전송되지 않는 파일의 확장자를 정의하는 데 사용됩니다.

다음 'ls temp' 폴더를 실행하여 임시 폴더의 내용을 확인하십시오. 다음으로 -include 및 -exclude 옵션과 함께 'rsync' 명령을 실행합니다. 명령에 따라 임시 폴더의 모든 CSV 파일이 파일 폴더로 전송되고 임시 폴더의 모든 텍스트 파일은 전송 시 생략됩니다. 그런 다음 'ls files' 명령을 실행하여 임시 폴더에서 파일 폴더로 어떤 파일이 전송되는지 확인합니다.

임시 직원
rsync -a temp/ 파일/ --include=*.csv --exclude=*.txt
ls 파일

다음 출력은 임시 폴더에 두 개의 CSV 파일, 두 개의 텍스트 파일 및 두 개의 BASH 파일이 포함되어 있음을 보여줍니다. 파일 폴더는 전송 전에 비어 있고 두 개의 CSV 파일과 두 개의 BASH 파일이 전송됩니다.

전송 후 소스 파일 및 폴더 삭제

이전의 모든 'rsync' 명령에서 소스 파일과 폴더는 대상 위치로 전송된 후에도 소스 위치에 남아 있습니다. 그러나 때로는 파일과 폴더를 대상 위치로 영구적으로 전송해야 합니다. 이 작업은 'rsync' 명령과 함께 –remove-source-files 옵션을 사용하여 수행할 수 있습니다. 'ls' 명령을 실행하여 현재 위치의 모든 파일과 폴더를 확인합니다. 'ls temp' 명령을 실행하여 임시 폴더의 파일 및 폴더를 확인합니다. 그런 다음 –remove-source-files 옵션과 함께 “rsync” 명령을 실행하여 전송을 완료한 후 원본 위치의 파일과 폴더를 삭제합니다. 소스 파일이 소스 위치에서 제거되었는지 확인하려면 'ls' 명령을 다시 실행하십시오.

ls
임시 직원
rsync employee.csv temp/ --remove-source-files
ls

다음 출력은 현재 위치의 'employees.csv' 파일이 임시 폴더로 전송되고 'employees.csv' 파일이 전송 후 소스 위치에서 제거됨을 보여줍니다.

결론

'rsync'는 다양한 옵션을 사용하여 한 위치에서 다른 위치로 파일 및 폴더의 전송 작업을 더 쉽게 만드는 Linux의 매우 유용한 도구입니다. 'rsync' 명령을 사용하여 압축, 파일 및 폴더 크기 설정, 파일 유형 설정, 대역폭 제한 설정 등을 통해 한 위치에서 다른 위치로 파일 및 폴더를 전송하는 방법은 다음의 15가지 간단한 예에 나와 있습니다. 이 튜토리얼. 이 튜토리얼은 Linux 사용자가 Linux에서 'rsync' 명령의 기본 사용법을 제대로 알 수 있도록 도와줍니다.