コマンド scp
scp コマンドは、sshで、通信を暗号化してリモートマシン間でファイルのコピーができます.
サーバー間のファイルコピーで、素早くサーバー間でファイルのやり取りが出来るので便利ですね.
server リモート接続先 server 相手サーバー +------ 192.168.0.100 -----+ +------ 192.168.0.110 -----+ | | | | | usrname1 | | username2 | | | | | | /tmp/tdir1/testfile1 | | /tmp/tdir2/testfile2 | | | | | +--------------------------+ +--------------------------+
コマンド [ SCP ] [ – オプション ] [ コピー元 ] [ コピー先 ]
ssh でリモート接続をする
リモート接続 ssh username1@192.168.0.100
ファイルのコピー
ファイルコピー リモート接続先から相手のサーバーへ
リモート接続192.168.0.100 の中の /tmp/tdir1/testfile1 を192.168.0.110 の /tmp/tdir2/ にコピーする.
# scp /tmp/tdir1/testfile1 usrname2@192.168.0.110:/tmp/tdir2/ username2のパスワード入力
ファイルコピー 相手のサーバーからリモート接続先へ
192.168.0.110 の /tmp/tdir2/testfile2 をリモート接続先192.168.0.100 の中の /tmp/tdir1/にコピーする.
# scp usrname2@192.168.0.110:/tmp/tdir2/testfile2 /tmp/tdir1/ username2のパスワード入力
ディレクトリのコピー
ディレクトリコピー リモート接続先から相手のサーバーへ
リモート接続192.168.0.100 の中の /tmp/tdir1 を192.168.0.110 の /tmp にコピーする.
-r オプションを付けて
# scp -r /tmp/tdir1 usrname2@192.168.0.110:/tmp username2のパスワード入力
ディレクトリコピー 相手のサーバーからリモート接続先へ
192.168.0.110 の /tmp/tdir2 をリモート接続先192.168.0.100 の中の /tmp ディレクトリにコピーする.
-r オプションを付けて
# scp -r usrname2@192.168.0.110:/tmp/tdir2 /tmp/ username2のパスワード入力
圧縮オプション
サーバー間の通信環境の悪い時や大きなファイルのコピーをするときは圧縮したほうが速いので
圧縮オプション -C
を使用したい.
ディレクトリ圧縮コピー 相手のサーバーからリモート接続先へ
192.168.0.110 の /tmp/tdir2 をリモート接続先192.168.0.100 の中の /tmp ディレクトリに圧縮してコピーする.
-r Cオプションを付けて
# scp -rC usrname2@192.168.0.110:/tmp/tdir2 /tmp/ username2のパスワード入力