[shell] scp를 사용하여 폴더를 원격에서 로컬로 복사하려면 어떻게합니까? [닫은]

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

ssh서버에 로그인 할 때 사용 합니다.
그런 다음 원격 폴더 foo를 local 에 복사하고 싶습니다 /home/user/Desktop.

어떻게하면 되나요?



답변

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

foo의 끝에 후행 ‘/’를 포함시키지 않으면 디렉토리의 내용 만이 아니라 디렉토리 자체 (내용 포함)가 이동합니다.

에서 man scp( 온라인 설명서 참조 )

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


답변

scp의 모든 기능을 사용하려면 다음 단계를 수행해야합니다.

  1. 공개 키 인증
  2. ssh 별명 작성

그런 다음 예를 들어 ~ / .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-completion을 활성화하려면 호스트 <source><target>호스트 모두에 bash-shell이 있고 제대로 작동하는 bash-completion이 있어야합니다. 자세한 내용은 관련 질문을 참조하십시오.

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


답변

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

scp -r /path/from/destination username@hostname:/path/to/destination

원격 위치 에서 로컬 위치로 모두 복사하려면 (다운로드)

scp -r username@hostname:/path/from/destination /path/to/destination

사용자 정의 포트 번호 xxxx가있는 사용자 정의 포트

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

현재 디렉토리에서 원격에서 로컬로 복사

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

도움:

  1. -r 모든 디렉토리와 파일을 재귀 적으로 복사
  2. 의 전체 위치를 항상 사용 /하십시오.pwd
  3. scp 기존의 모든 파일을 대체합니다
  4. hostname 호스트 이름 또는 IP 주소입니다
  5. 사용자 정의 포트가 필요한 경우 (포트 22 외에) -P portnumber
  6. . (점) -현재 작업 디렉토리를 의미하므로 서버에서 다운로드 / 복사하고 여기에만 붙여 넣기

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


답변

내가 항상 사용하는 것은 :

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

. (점) : 의미 current folder합니다. 서버에서 복사하여 여기에만 붙여 넣으십시오.

IP : IP 주소와 같 125.55.41.311거나 호스트와 같은 호스트 일 수 있습니다 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 기본 암호화 (Triple-DES)를 ‘blowfish’와 같은 것으로 변경하십시오.

파일 복사 시간이 크게 줄어 듭니다.

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


답변

전형적인 시나리오

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