scp`を使って、リモートホストからローカルホストにフォルダをコピーするには?
自分のサーバにログインするのに ssh
を使っています。
そして、リモートフォルダ foo
をローカルの /home/user/Desktop
にコピーしたいと思います。
これを実現するにはどうすればよいでしょうか?
scp -r [email protected]:/path/to/foo /home/user/Desktop/
man scp`より(オンラインマニュアル参照
-r ディレクトリ全体を再帰的にコピーする
SCP**の機能をフルに活用するには、次のステップを踏む必要があります。
1.公開鍵認証**を行います。 2.sshエイリアスの作成**
そして、例えばこの~/.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補完を有効にするには、<ソース>
と<ターゲット>
の両方のホストにbash-shellがあり、bash補完が正しく動作している必要があります。詳細については、関連する質問を参照してください。
How to enable autocompletion for remote paths when using scp?
SCP filename tab completion
最初にリモートサーバーでカタログを圧縮する方が良い。
tar czfP backup.tar.gz /path/to/catalog
次に、リモートからダウンロードします。
scp [email protected]:/path/to/backup.tar.gz .
最後に、ファイルを解凍します。
tar -xzvf backup.tar.gz