私のターミナルシェルからリモートサーバーとcd
目的のディレクトリにSSHを介して接続します。
table
このディレクトリには、ローカルコンピュータにコピーしたいファイルがあります/home/me/Desktop
。
どうすればいいですか?
試しましたが、scp table /home/me/Desktop
そのファイルやディレクトリがないというエラーが発生しました。
これを行う方法を知っている人はいますか?
答え1
構文は次scp
のとおりです。
リモートコンピュータにファイルを送信するコンピュータを使用している場合:
scp /file/to/send username@remote:/where/to/put
これはremote
FQDNまたはIPアドレスです。
一方、コンピュータを使用していてリモートコンピュータからファイルを受信したい場合:
scp username@remote:/file/to/send /where/to/put
scp
2つのリモートホスト間でファイルを送信することも可能です。
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ディストリビューションでは確実に機能します。