SSH를 통해 Rsync를 사용하여 파일 전송 방법

SSH를 통해 Rsync를 사용하여 파일 전송 방법

2022-06-01 last update

5 minutes reading terminal rsync
네트워크 시스템 간에 파일을 전송할 때 Linux와 Unix 사용자는 많은 도구를 사용할 수 있다.가장 유행하는 데이터 전송 프로토콜은 SSH 및 FTP이다
.FTP는 매우 유행하지만, 파일을 전송하는 가장 안전한 방식이기 때문에 항상 SSH를 사용하는 것을 좋아한다. scp 과 같이 SSH를 통한 파일 전송을 위한 전용 도구가 있습니다.
sftp
하지만 rsync이 제공하는 모든 기능은 없습니다.rsync은 데이터 미러링, 증분 백업, 시스템 간 파일 복사 등에 사용됩니다.이 강좌에서 우리는 rsync 의 복사 파일을 어떻게 사용하는지 설명할 것이다
SSH를 통해

요구 사항

  • 은 목표 시스템과 원본 시스템에 rsync 실용 프로그램을 설치해야 합니다.설치되지 않으면 릴리스 패키지 관리자를 사용하여 설치할 수 있습니다. Ubuntu 및 Debian:
    sudo apt install rsync
    CentOS 및 Fedora:
    sudo yum install rsync
  • SSH에서 원격 컴퓨터에 액세스할 수 있습니다.
  • rsync 명령을 실행하는 사용자와 원격 SSH 사용자는 파일을 읽고 쓸 수 있는 적절한 권한을 가져야 합니다.
  • rsync를 사용하여 SSH를 통해 파일 전송

    rsync을 사용하면 SSH를 통해 원격 서버 간에 파일과 디렉터리를 전송할 수 있습니다.rsync을 사용하여 파일을 전송하는 일반적인 문법은 다음과 같다.
    Local to Remote: rsync [OPTION]... -e ssh [SRC]... [[email protected]]HOST:DEST
    Remote to Local: rsync [OPTION]... -e ssh [[email protected]]HOST:SRC... [DEST]
    
    , 그 중에서 SRC은 원본 디렉터리, DEST은 대상 디렉터리, USER은 원격 SSH 사용자 이름, HOST은 원격 SSH 호스트 또는 IP 주소이다.새 버전의 rsync 설정은 SSH를 기본 원격 셸로 사용하기 때문에 -e ssh 옵션을 생략할 수 있습니다.예를 들어 단일 파일 /opt/file.zip을 로컬 시스템에서 IP /var/www/의 원격 시스템에서 12.12.12.12 디렉터리로 전송하려면
    rsync -a /opt/file.zip [email protected]:/var/www/
    -a 옵션을 실행하면 아카이브 모드를 대표합니다. 이 옵션은 동기화 디렉터리로 돌아가 특수와 차단 장치를 전송하고 번호 링크, 수정 시간, 그룹, 소유권과 권한을 보존합니다.passwordless SSH login을 설정하지 않은 경우
    원격 컴퓨터의 경우 사용자 암호를 입력하라는 메시지가 표시됩니다.원격 서버에 파일이 있는 경우 파일을 덮어씁니다.다른 이름으로 파일을 저장하려면 새 이름:
    rsync -a /opt/file.zip [email protected]:/var/www/file2.zip
    을 지정하여 데이터를 원격 컴퓨터에서 로컬 컴퓨터로 전송하고 원격 위치를 원본으로 사용하며 로컬 위치를 대상으로 사용합니다.
    rsync -a [email protected]:/var/www/file.zip /opt/
    은 SSH를 통해 rsync이 있는 디렉터리를 전송 파일과 동일하게 전송합니다.중요한 것은 rsync이 꼬리 슬래시 /이 있는 원본 디렉터리에 대해 서로 다른 처리를 했다는 것을 알아야 한다.소스 디렉토리에 끝 슬래시가 있는 경우 rsync은 소스 디렉토리의 컨텐츠만 대상 디렉토리로 복사합니다.꼬리 슬래시를 생략하면 소스 디렉토리가 대상 디렉토리로 복사됩니다.예를 들어 로컬 /opt/website/images/ 디렉터리를 원격 컴퓨터의 /var/www/images/ 디렉터리로 전송하려면 입력:
    rsync -a /home//images/ [email protected]:/var/www/images/
    로컬과 원격 디렉터리를 동기화하려면 --delete 옵션을 사용하십시오.이 옵션을 사용할 때는 소스 디렉토리에 대상 디렉토리의 파일이 없는 경우 삭제되므로 조심해야 합니다.원격 호스트의 SSH가 listening이면
    rsync -a --delete /home//images/ [email protected]:/var/www/images/
    기본 22 이외의 포트에서 -e 옵션을 사용하여 포트를 지정합니다.예를 들어 SSH가 포트 3322을 탐지 중인 경우 대량의 데이터를 전송할 때
    rsync -a -e "ssh -p 3322" /home//images/ [email protected]:/var/www/images/
    을 사용하므로 screen에서 rsync 명령을 실행하는 것이 좋습니다.
    세션이나 -P 옵션을 사용하면 rsync이 전송 과정에서 진도표를 표시하고 일부 전송된 파일을 보존할 수 있습니다. (adsbygoogle=window.adsbygoogle | []).푸시({});
    rsync -a -P /home//images/ [email protected]:/var/www/images/

    결론

    우리는 SSH를 통해 rsync을 사용하여 파일과 디렉터리를 복사하고 동기화하는 방법을 보여 드렸습니다.exclude files or directoriesrsync.질문이 있으시면 언제든지 논평을 주십시오.