SW/리눅스

Linux : SSH, Rsync로 파일 전송 방법, 예제, 명령어

얇은생각 2021. 12. 4. 07:30
반응형

네트워크 상의 시스템 간에 파일을 전송할 때 Linux와 Unix 사용자는 많은 도구를 자유롭게 사용할 수 있습니다.

가장 많이 사용되는 데이터 전송 프로토콜은 SSH와 FTP입니다. FTP가 매우 널리 사용되지만 파일을 전송하는 가장 안전한 방법인 SSH를 사용하는 것이 항상 좋습니다. 

SSH를 통한 파일 전송을 위한 특수 도구(예: scp 및 sftp)가 있지만 알싱크가 제공하는 모든 기능을 갖춘 도구는 없습니다. 데이터 미러링, 증분 백업, 시스템 간 파일 복사 등에 Rsync를 사용할 수 있습니다.

SSH를 통해 알싱크로 파일을 복사하는 방법에 대해 설명합니다.

 

 

Linux : SSH, Rsync로 파일 전송 방법, 예제, 명령어

 

 

요구 사항

대상 시스템과 소스 시스템 모두에 rsync 유틸리티를 설치해야 합니다. 설치되지 않은 경우 배포의 패키지 관리자를 사용하여 설치할 수 있습니다.

 

우분투와 데비안

sudo apt install rsync

 

 

CentOS 및 Fedora

sudo yum install rsync

 

 

원격 시스템에 대한 SSH 액세스입니다.

rsync 명령을 실행하는 사용자와 원격 SSH 사용자에게 파일을 읽고 쓸 수 있는 적절한 권한이 있어야 합니다.

 

 

 

알싱크를 사용하여 SSH를 통해 파일을 전송

알싱크를 사용하면 SSH를 통해 원격 서버에서 또는 원격 서버로 파일 및 디렉터리를 전송할 수 있습니다.

알싱크로 파일을 전송하는 일반적인 구문은 다음과 같습니다.

Local to Remote: rsync [OPTION]... -e ssh [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... -e ssh [USER@]HOST:SRC... [DEST]

 

 

여기서 SRC는 소스 디렉토리이고 DEST는 대상 디렉토리 USER는 원격 SSH 사용자 이름이고 HOST는 원격 SSH 호스트 또는 IP 주소입니다.

최신 버전의 알싱크는 SSH를 기본 원격 셸로 사용하도록 구성되어 있으므로 -essh 옵션을 생략할 수 있습니다.

예를 들어 로컬 시스템에서 IP 12.12.12를 사용하는 원격 시스템의 /var/www/ 디렉토리로 단일 파일 /opt/file.zip을 전송하려면 다음을 실행합니다.

rsync -a /opt/file.zip user@12.12.12.12:/var/www/

 

 

-a 옵션은 디렉토리를 반복적으로 동기화하고, 특수 및 블록 장치를 전송하며, 심볼 링크, 수정 시간, 그룹, 소유권 및 권한을 보존하는 보관 모드를 나타냅니다.

원격 시스템에 암호 없는 SSH 로그인을 설정하지 않은 경우 사용자 암호를 입력하라는 메시지가 표시됩니다.

원격 서버에 파일이 있으면 덮어씁니다. 파일을 다른 이름으로 저장하려면 새 이름을 지정하십시오.

rsync -a /opt/file.zip user@12.12.12.12:/var/www/file2.zip

 

 

원격에서 로컬 시스템으로 데이터를 전송하려면 원격 위치를 소스로 사용하고 로컬 위치를 대상으로 사용합니다.

rsync -a user@12.12.12.12:/var/www/file.zip /opt/

 

 

SSH를 통해 rsync를 사용하여 디렉토리를 전송하는 것은 파일을 전송하는 것과 같습니다.

rsync는 원본 디렉터리에 후행 슬래시 /를 사용하여 서로 다른 처리를 제공한다는 것을 알아야 합니다. 원본 디렉토리에 후행 슬래시가 있는 경우, rsync는 원본 디렉토리의 내용만 대상 디렉토리에 복사합니다. 후행 슬래시를 생략하면 원본 디렉토리가 대상 디렉토리 내부에 복사됩니다.

예를 들어 로컬 /opt/웹 사이트/images/ 디렉토리를 원격 시스템의 /var/www/images/ 디렉토리로 전송하려면 다음을 입력합니다.

rsync -a /home/jjeongil/images/ user@12.12.12.12:/var/www/images/

 

 

로컬 및 원격 디렉토리를 동기화하려면 --delete 옵션을 사용합니다. 원본 디렉터리에 파일이 없는 경우 대상 디렉터리에 파일이 삭제되므로 이 옵션을 사용할 때 주의하십시오.

rsync -a --delete /home/jjeongil/images/ user@12.12.12.12:/var/www/images/

 

 

원격 호스트의 SSH가 기본 22가 아닌 다른 포트에서 수신 중인 경우 -e 옵션을 사용하여 포트를 지정합니다. 예를 들어 SSH가 포트 3322에서 수신 중인 경우 다음을 사용합니다.

rsync -a -e "ssh -p 3322" /home/jjeongil/images/ user@12.12.12.12:/var/www/images/

 

 

대량의 데이터를 전송할 때는 화면 세션 내에서 rsync 명령을 실행하거나 -P 옵션을 사용하여 전송 중에 진행 표시줄을 표시하고 부분적으로 전송된 파일을 유지하는 것이 좋습니다.

rsync -a -P /home/jjeongil/images/ user@12.12.12.12:/var/www/images/

 

 

지금까지 SSH를 통해 사용자가 파일 및 디렉토리를 복사 및 동기화하는 방법을 살펴보았습니다.

또한 알싱크로 파일 또는 디렉터리를 제외하는 방법을 읽을 수도 있습니다.

반응형