ターミナルシェルで、リモートサーバーにsshで接続し、目的のディレクトリにcd
します。
このディレクトリに、table
というファイルがあり、ローカルマシンにコピーしたい/home/me/Desktop
。
これどうやってするの?
私は試した scp table /home/me/Desktop
しかし、そのようなファイルやディレクトリがないというエラーが発生しました。
誰でもこれを行う方法を知っていますか?
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
これについてより多くのアイデアを得るために。
代わりにrsync
を使用できます。主にファイルを同期するためのものですが、この目的にも使用できます。
rsync -avzh --stats --progress remoteuser@remoteip:/path/ localpath
sshオプションを追加するには:
rsync -e "ssh -P $port_value" remoteuser@remoteip:/path/ localpath
--progress
および--stats
は、転送のリアルタイム表示に役立ちます。
転送済みのファイルをスキップするため、SCPよりも良いオプションだと思います。これは、多くのファイルをコピーしているときに顕著です。
scp [email protected]:/root/Jmeter/reports.jtl Downloads/
scp username@ipaddress:pathtofile localsystempath
scp sadananad@ipaddress:/home/demo/public_html/myproject.tar.gz .
ポートで使用する場合:
scp -Pportnumber username@ipaddress:pathtofile localsystempath
scp -P2233 sadananad@ipaddress:/home/demo/public_html/myproject.tar.gz .
ネットワーク内の全員を完全に信頼していて、宛先マシンのポートを直接接続できる場合は、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
私見、これはデジタルネットワークを使用して1つのコンピューターから別のコンピューターにファイルを送信するための可能な最速の方法です。
引数とコマンドラインオプションは、nc
とtar
の異なるバージョン間で若干異なる場合がありますが、最近のLinuxディストリビューションでは確実に機能します。
Linuxで、フォルダーとそのコンテンツをユーザー(この例ではroot)ディレクトリーからローカルユーザーディレクトリーのフォルダーにコピーするには、ローカルマシンで次のコマンドを実行します。
scp -r [email protected]:〜/ folderinremoteuserdir〜/ folderinlocaluserdir
私がしばしば忘れているように見える〜/に注意してください...