SSH越しのファイル操作まとめ
サーバー間でファイルをやり取りしたい場合にいつもコマンドを検索しなおしてしまうのでssh越しにファイルをコピーするコマンドをまとめてみました。
また、この記事を書いている途中に同様の内容をまとめているブログを見つけたのでリンクを貼っておきます。
前準備
キーファイルの権限変更
コピー後は権限を設定し直しておく
$ chmod 600 keyfile.pem
scp
リーモートのファイルをローカルにコピー
$ scp -i keyfile.pem root@192.168.1.1:/path/to/source.tar.gz .
ローカルのファイルをリモートにコピー
$ scp -i keyfile.pem /path/to/source.tar.gz root@192.168.1.2:/destination/dir
tar
rsyncが入っていない場合にディレクトリごとコピーする場合はtarも使えます。
ローカルのディレクトリをリモートに出力
$ tar zcvf - /some/file | ssh -i keyfile.pem root@192.168.1.1 "cat > /destination/backup.tar.gz"
生成したtarボールをローカルに復元
$ ssh -i keyfile.pem root@192.168.1.1 "cat /destination/backup.tar.gz" | tar zxvf -
こちらも参考: http://www.cyberciti.biz/faq/howto-use-tar-command-through-network-over-ssh-session/
コピー先でそのまま展開する場合
$ tar -cf - /some/file | ssh -i keyfile.pem root@192.168.1.1 tar -xf - -C /destination