scp
?를 사용하여 원격에서 로컬 호스트로 폴더를 어떻게 복사 합니까?
ssh
서버에 로그인 할 때 사용 합니다.
그런 다음 원격 폴더 foo
를 local 에 복사하고 싶습니다 /home/user/Desktop
.
어떻게하면 되나요?
scp
?를 사용하여 원격에서 로컬 호스트로 폴더를 어떻게 복사 합니까?
ssh
서버에 로그인 할 때 사용 합니다.
그런 다음 원격 폴더 foo
를 local 에 복사하고 싶습니다 /home/user/Desktop
.
어떻게하면 되나요?
답변:
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
foo의 끝에 후행 '/'를 포함시키지 않으면 디렉토리의 내용 만이 아니라 디렉토리 자체 (내용 포함)가 이동합니다.
에서 man scp
( 온라인 설명서 참조 )
-r 전체 디렉토리를 재귀 적으로 복사
-C
플래그는 압축을 추가 하고 플래그는 dimuthu의 답변에서 볼 수 있듯이-c
더 나은 성능을 위해 다른 암호 유형을 전달할 수 있습니다scp -c blowfish a@b:something .
Desktop/foo
또는 당신은 할 것이다 Desktop/allcontentsofFooGohere
SCP이, 실행하는 나에게 이상한 때로는 행동하는 것 한 가지는 다음 다른
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
당신으로 끝나야합니다 Desktop/foo
. 함께 scp -r user@your.server.example.com:/path/to/foo/. /home/user/Desktop/
당신의 내용으로 종료됩니다 foo
에 Desktop
와 모든 하위 DIRS foo
에서 천지Desktop
scp의 모든 기능을 사용하려면 다음 단계를 수행해야합니다.
그런 다음 예를 들어 ~ / .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 -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 .
도움:
-r
모든 디렉토리와 파일을 재귀 적으로 복사/
하십시오.pwd
scp
기존의 모든 파일을 대체합니다hostname
호스트 이름 또는 IP 주소입니다-P portnumber
참고 : 방화벽에서 포트가 허용되지 않아서 사용자 정의 포트가 작동하지 않는 경우가 있으므로 방화벽에서 사용자 정의 포트가 수신 및 발신 연결에 허용되는지 확인하십시오.
pwd
위치를 알아 내고 사용 하기
내가 항상 사용하는 것은 :
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
-C
플래그 를 사용하여 scp에 압축을 추가 할 수 있습니다 scp -C a@b:bigfile .
.
원격 위치에서 다운로드 할 파일이 하나라도 있고 보안에 신경 쓰지 않는다면 scp 기본 암호화 (Triple-DES)를 'blowfish'와 같은 것으로 변경하십시오.
파일 복사 시간이 크게 줄어 듭니다.
scp -c blowfish -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
문제는 scp
명령 을 사용하여 폴더를 원격에서 로컬로 복사하는 방법이었습니다 .
$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir
그러나 sftp
SSH 파일 전송 프로토콜 (SFTP (Secure File Transfer Protocol))은 신뢰할 수있는 데이터 스트림을 통해 파일 액세스, 파일 전송 및 파일 관리를 제공하는 네트워크 프로토콜입니다 (wikipedia).
$ sftp user_remote@remote_ip
sftp> cd /path/to/remoteDir
sftp> get -r remoteDir
Fetching /path/to/remoteDir to localDir 100% 398 0.4KB/s 00:00
sftp
명령에 대한 도움말을 보려면 help
또는을 입력하십시오 ?
.