본문 바로가기

리눅스

rsync를 사용하여 SSH를 통해 파일을 복사하는 방법

반응형

rsync를 사용하여 SSH를 통해 파일을 복사하는 방법

rsync는 기본적으로 SSH를 지원하며, SSH를 통해 원격 호스트 간에 파일을 동기화하는 데 사용할 수 있습니다.

기본적인 구문

rsync -avz -e "ssh" /원본/경로/ 사용자@원격호스트:/목적지/경로/
  • -avz: 파일을 아카이브 모드로 동기화합니다. a는 아카이브 모드, v는 자세한 출력을 보여줍니다, z는 파일 압축을 사용합니다.
  • -e "ssh": rsync가 SSH를 통해 파일을 복사하도록 지정합니다.
  • /원본/경로/: 로컬 시스템에서 복사할 파일이나 디렉토리의 경로를 지정합니다.
    사용자@원격호스트:/목적지/경로/: 원격 시스템에서 복사할 위치를 사용자명, 호스트명 및 경로를 함께 지정하여 지정합니다.

실제 예를 들어, 로컬 서버의 /home/user/documents/ 디렉토리를 원격 서버의 /backup/ 디렉토리로 복사하려면 다음과 같이 실행합니다.

rsync -avz -e "ssh" /home/user/documents/ user@2.2.2.2:/backup/

실행 후 rsync는 로컬 디렉토리와 원격 디렉토리를 비교하여 변경된 파일만 복사합니다. 이를 통해 대량의 데이터를 효율적으로 동기화할 수 있습니다. 또한 SSH를 통해 파일을 안전하게 전송하며, 원격 서버에 원하는 디렉토리를 복사할 수 있습니다.

 

  • Pull
rsync [OPTION] [USER@]HOST:SRC [DEST]
  • Push
rsync [OPTION] SRC [USER@]HOST:DEST

로컬 서버(1.1.1.1)에서 원격 서버(2.2.2.2)로 디렉토리를 복사하는 방법

rsync -ahvz --progress -e "ssh" /Source root@2.2.2.2:/Destination/
  • -a: 아카이브 모드를 활성화합니다. 파일 권한, 소유자, 그룹, 시간 등을 보존하여 동기화합니다.
  • -h: 사람이 읽기 쉬운 형식으로 출력합니다.
  • -v: 자세한 출력을 보여줍니다. 복사 진행 상황을 확인할 수 있습니다.
  • -z: 파일을 압축하여 전송합니다. 대역폭 절약을 위해 사용됩니다.
  • --progress: 복사 진행 상황을 보여줍니다.
  • -e "ssh": SSH를 통해 원격 호스트로 연결하여 파일을 복사합니다.

이렇게 사용하면 /Source 디렉토리의 내용을 원격 서버 2.2.2.2의 /Destination/ 디렉토리로 복사하게 됩니다. 실행시 변경사항만 동기화되므로 중복 전송을 방지하고 효율적으로 파일을 동기화할 수 있습니다.

원격 서버(2.2.2.2)의 디렉토리를 로컬 서버(1.1.1.1)로 복사하는 방법

rsync -ahvz --progress -e "ssh" root@2.2.2.2:/Source /Destination/
  • -a: 아카이브 모드를 활성화합니다. 파일 권한, 소유자, 그룹, 시간 등을 보존하여 동기화합니다.
  • -h: 사람이 읽기 쉬운 형식으로 출력합니다.
  • -v: 자세한 출력을 보여줍니다. 복사 진행 상황을 확인할 수 있습니다.
  • -z: 파일을 압축하여 전송합니다. 대역폭 절약을 위해 사용됩니다.
  • --progress: 복사 진행 상황을 보여줍니다.
  • -e "ssh": SSH를 통해 원격 호스트로 연결하여 파일을 복사합니다.

위의 명령어를 사용하면 원격 서버 2.2.2.2의 /Source 디렉토리의 내용을 로컬 서버의 /Destination/ 디렉토리로 복사하게 됩니다. 실행시 변경사항만 동기화되므로 중복 전송을 방지하고 효율적으로 파일을 동기화할 수 있습니다.

 

728x90
반응형