リモートサーバーからローカルコンピュータにファイルをコピーする方法は?

リモートサーバーからローカルコンピュータにファイルをコピーする方法は?

私のターミナルシェルからリモートサーバーとcd目的のディレクトリにSSHを介して接続します。

tableこのディレクトリには、ローカルコンピュータにコピーしたいファイルがあります/home/me/Desktop

どうすればいいですか?

試しましたが、scp table /home/me/Desktopそのファイルやディレクトリがないというエラーが発生しました。

これを行う方法を知っている人はいますか?

答え1

構文は次scpのとおりです。

リモートコンピュータにファイルを送信するコンピュータを使用している場合:

scp /file/to/send username@remote:/where/to/put

これはremoteFQDNまたはIPアドレスです。

一方、コンピュータを使用していてリモートコンピュータからファイルを受信したい場合:

scp username@remote:/file/to/send /where/to/put

scp2つのリモートホスト間でファイルを送信することも可能です。

scp username@remote_1:/file/to/send username@remote_2:/where/to/put

したがって、基本的な構文は次のとおりです。

scp username@source:/location/to/file username@destination:/where/to/put

あなたは読むことができますman scpこれについてより多くのアイデアを得るために。

答え2

rsync代替として使用できます。主にファイルの同期に使用されますが、この目的にも使用できます。

rsync -avzh --stats --progress remoteuser@remoteip:/path/  localpath 

SSHオプションを追加します。

rsync -e "ssh -P $port_value" remoteuser@remoteip:/path/  localpath

--progressリアルタイムディスプレイの転送に--stats便利です。

多くのファイルをコピーする際の顕著な点は、すでに転送されているファイルはスキップされるため、SCPよりも優れた選択肢だと思います。

答え3

scp [email protected]:/root/Jmeter/reports.jtl Downloads/

答え4

ネットワーク上の誰もが完全に信頼でき、ターゲットシステムのポートに直接接続できる場合は、netcat:を使用できますnc

ターゲットコンピュータのIPアドレスが192.168.1.123であるとします。

目的地で実行:

nc -l -p 7777 0.0.0.0 | tar zxvf - -C dest_dir

インターフェイスにバインドされている他のポートまたは異なるIPを選択できます。 0.0.0.0 はすべてのインターフェイスをキャプチャします。

ソースから実行:

tar zcvf - filename | nc 192.168.1.123 7777

IMHO、これはデジタルネットワークを使用してあるコンピュータから別のコンピュータにファイルを送信する最速の方法です。

ncパラメータとコマンドラインオプションはバージョンとバージョンによって若干異なる場合がありますが、tar最新のLinuxディストリビューションでは確実に機能します。

関連情報