![Unix 명령을 사용하여 내 하위 디렉터리에 있는 cp 파일을 SSH를 통해 원격 컴퓨터로 보낼 수 있습니까?](https://linux55.com/image/77129/Unix%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%82%B4%20%ED%95%98%EC%9C%84%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%97%90%20%EC%9E%88%EB%8A%94%20cp%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20SSH%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%EC%9B%90%EA%B2%A9%20%EC%BB%B4%ED%93%A8%ED%84%B0%EB%A1%9C%20%EB%B3%B4%EB%82%BC%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
일련의 소프트웨어 파일을 ~/Downloads
내 개인용 컴퓨터의 하위 디렉터리에 다운로드했습니다. 또한 bash를 사용하여 ssh
.
ssh
이 파일을 원격 컴퓨터로 전송할 수 있습니까 ?
답변1
이 목적 으로 사용하고 싶을 수도 있습니다 scp
. SSH 프로토콜을 사용하여 파일을 전송하는 안전한 방법입니다.
예를 들어 yourfile.txt
from이라는 파일을 ~/Downloads
원격 컴퓨터에 복사하려면 다음을 사용합니다.
scp ~/Downloads/yourfile.txt [email protected]:/some/remote/directory
더 많은 예시를 보실 수 있습니다여기.
답변2
이것은 분명히 올바른 도구 이지만 scp
어떤 이유로 인해 사용할 수 없는 경우 로컬 시스템에서 다음과 같은 작업을 수행하여 디렉터리 구조를 원격 시스템에 복사할 수 있습니다.
tar -c . | ssh <remote> tar -x
tar
이는 로컬 시스템의 현재 디렉터리가 되며 해당 디렉터리를 쓴 tar
다음 원격 명령을 실행하여 읽는 파일의 압축을 풀 수 있는 명령 stdout
으로 파이프합니다.ssh
stdin
-f -
생성 및 추출 측면 모두의 기본값 설정에 대한 Dietrich Epp의 의견을 반영하도록 편집되었으므로 명시적으로 지정할 필요가 없습니다.
답변3
더 많은 상황에서 이 작업을 수행하려면 sshfs
FUSE(Linux, *BSD, Mac OS X)를 지원하는 Unix 계열 장치를 사용하는 경우 원격 파일 시스템을 설치하는 것이 좋습니다. ~/remote-server와 같은 홈 디렉터리 아래에 디렉터리를 만듭니다.
$ mkdir ~/remote-server
그런 다음 원격 파일 시스템 마운트를 사용하십시오 sshfs
. "yourserver.com"을 원격 컴퓨터의 호스트 이름으로 바꾸고 "원격 디렉터리 이름"을 원격 시스템에서 사용 중인 디렉터리로 바꾸세요.
$ sudo sshfs [email protected]:/name/of/remote/directory ~/remote-server/
이 작업이 완료되면 원격 디렉터리는 파일 시스템의 일부가 되며 다음을 포함한 모든 일반 도구를 사용할 수 있습니다 cp
.
$ cp ~/Downloads/your-files ~/remote-server
아직 설치하지 않은 경우 sshfs
패키지 관리자를 사용하여 컴퓨터에 설치할 수 있습니다( sshfs
또는 이름의 패키지 검색 fuse-sshfs
). 자세한 내용은 다음을 참조하세요.온라인 튜토리얼.
그건 그렇고, 이것은 원격 서버에서 파일을 관리하는 데 내가 가장 좋아하는 방법입니다. 나는 보통 이런 방식으로 하나의 프로덕션 서버와 두 개의 개발 서버를 설정하고 일반적인 파일 탐색 워크플로를 사용합니다.
답변4
위의 답변에 추가합니다. 가끔 원격 경로가 확실하지 않을 때가 있습니다. 이러한 경우에는 sftp
먼저 원하는 위치로 이동한 다음 get 또는 put을 사용하여 실제로 파일을 다운로드하거나 업로드합니다.
이는 항상 동기화 상태를 유지하고 싶거나 원격 시스템에 있는 일부 파일을 로컬로 실행하려는 경우에 sshfs
유용합니다 .