を使用してリモートからローカルホストにフォルダをコピーするにはどうすればよいscp
ですか?
ssh
サーバーへのログインに使用しています。
次に、リモートフォルダfoo
をローカルにコピーしたいと思います/home/user/Desktop
。
どうすればこれを達成できますか?
を使用してリモートからローカルホストにフォルダをコピーするにはどうすればよいscp
ですか?
ssh
サーバーへのログインに使用しています。
次に、リモートフォルダfoo
をローカルにコピーしたいと思います/home/user/Desktop
。
どうすればこれを達成できますか?
回答:
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
fooの末尾に末尾の「/」を含めないことで、ディレクトリのコンテンツだけでなく、ディレクトリ自体(コンテンツを含む)を移動します。
からman scp
(オンラインマニュアルを参照)
-rディレクトリ全体を再帰的にコピーします
-C
フラグは、圧縮を追加し、-c
フラグを使用して、同じように、パフォーマンス向上のために他の暗号の種類に渡すことができますscp -c blowfish a@b:something .
dimuthuの答えに見られるように
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補完を有効にするには、<source>
と<target>
ホストの両方にbashシェルがあり、bash補完が適切に機能している必要があります。詳細については、関連する質問を参照してください。
ローカルロケーションからリモートロケーションにすべてをコピーするには(アップロード)
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 .
。
また、リモートの場所からダウンロードするファイルが1つでもあり、セキュリティをあまり気にしない場合は、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ファイル転送プロトコル(Secure File Transfer Protocol、またはSFTP)は、信頼できるデータストリームを介したファイルアクセス、ファイル転送、およびファイル管理を提供するネットワークプロトコルです(ウィキペディア)。
$ 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
たり?
。