SCP를 사용하여 원격으로 폴더를 로컬로 복사하려면 어떻게합니까?


질문

 

SCP를 사용하여 원격에서 로컬 호스트로 폴더를 복사하려면 어떻게합니까?

SSH를 사용하여 내 서버에 로그인합니다. 그런 다음 원격 폴더 foo를 로컬 / 홈 / 사용자 / 바탕 화면에 복사하고 싶습니다.

어떻게 이것을 달성합니까?


답변

 

scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/

Foo의 끝에서 Trailing '/'를 포함하지 않으면 디렉토리의 내용이 아닌 디렉토리 자체 (내용 포함)를 복사합니다.

Man SCP에서 (온라인 설명서 참조)

-r은 재귀 적으로 전체 디렉토리를 복사합니다



답변

SCP의 전체 전력을 사용하려면 다음 단계를 수행해야합니다.

  1. Public key authorisation
  2. Create ssh aliases

그런 다음 예를 들어 ~ / .ssh / config가있는 경우 :

Host test
    User testuser
    HostName test-site.com
    Port 22022

Host prod
    User produser
    HostName production-site.com
    Port 22022

암호 항목에서 자신을 저장하고 다음과 같이 SCP 구문을 단순화합니다.

scp -r prod:/path/foo /home/user/Desktop   # copy to local
scp -r prod:/path/foo test:/tmp            # copy from remote prod to remote test

또한 원격 경로 완료를 사용할 수 있습니다.

scp test:/var/log/  # press tab twice
Display all 151 possibilities? (y or n)

업데이트:

원격 Bash 완료를 사용하려면 호스트 모두에서 Bash-Shell을 가져야하고 Bash-famply를 올바르게 작동시켜야합니다.자세한 내용은 관련 질문을 참조하십시오.

SCP를 사용할 때 원격 경로에 대한 자동 완성을 활성화하는 방법은 무엇입니까? SCP 파일 이름 탭 완료



답변

로컬 위치에서 원격 위치로 모든 복사 (업로드)

scp -r /path/from/local username@hostname:/path/to/remote

원격 위치에서 로컬 위치로 모든 복사 (다운로드)

scp -r username@hostname:/path/from/remote /path/to/local

사용자 정의 포트 여기서 xxxx는 사용자 정의 포트 번호입니다

 scp -r -P xxxx username@hostname:/path/from/remote /path/to/local

원격에서 로컬에서 현재 디렉토리를 복사합니다

scp -r username@hostname:/path/from/remote .

돕다:

  1. -r Recursively copy all directories and files
  2. Always use full location from /, Get full location by pwd
  3. scp will replace all existing files
  4. hostname will be hostname or IP address
  5. if custom port is needed (besides port 22) use -P portnumber
  6. . (dot) - it means current working directory, So download/copy from server and paste here only.

참고 : 방화벽에서 포트가 허용되지 않아 사용자 지정 포트가 작동하지 않으므로 수신 및 나가는 연결을 위해 방화벽에서 사용자 지정 포트가 허용되는지 확인하십시오.



답변

내가 항상 사용하는 것은 다음과 같습니다.

scp -r username@IP:/path/to/server/source/folder/  .

...에(점) : 현재 폴더를 의미합니다.그래서 서버에서 복사하여 여기에만 붙여 넣으십시오.

IP : 125.55.41.311과 같은 IP 주소가 될 수 있거나 ns1.mysite.com과 같은 호스트 일 수 있습니다.



답변

먼저 원격 서버에서 카탈로그를 압축하는 것이 좋습니다.

tar czfP backup.tar.gz /path/to/catalog

둘째, 원격으로 다운로드 :

scp user@your.server.example.com:/path/to/backup.tar.gz .

마지막에 파일을 추출하십시오.

tar -xzvf backup.tar.gz


답변

전형적인 시나리오,

scp -r -P port username@ip:/path-to-folder  .

샘플로 설명하고,

SCP -R -P 27000 abc@10.70.12.12 : / tmp / hotel_dump.

어디,

port = 27000
username = "abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
출처:https://stackoverflow.com/questions/11304895/how-do-i-copy-a-folder-from-remote-to-local-using-scp