Linuxにおけるscpコマンドの使用方法を解説します。
scpコマンドについて
scpコマンドは、通常のcpコマンドと異なり、以下のようなことが出来ます。
- ローカルマシン(コマンドを実行する側)とリモートマシン間でのコピー
- リモートマシン同士でのコピー
また、通信にはsshを使用するため、通信内容については暗号化されています。
その他、sshコマンドと同様に、コマンドを使用する際、下記のような注意点があります。
scpコマンドの書式とオプション
ここでは、scpコマンドの書式とオプションを説明します。
書式
scpコマンドの基本的な書式です。
scp [オプション] コピー元 コピー先
オプション
scpコマンドで使えるオプションです。(使用頻度が低いものは省略しています)
オプション | 説明 |
---|---|
-c | データの暗号化方式を指定する |
-C | データを圧縮してコピーする |
-F SSH設定ファイル | SSHの設定ファイルを指定する |
-l 帯域 | 通信帯域を制限する(Kbit/s単位) |
-o | SSHのオプションを使用する |
-p | コピー元のタイムスタンプやパーミッションを保持する |
-P ポート番号 | 接続に使用するポートを指定する |
-q | 実行状況などの情報を表示しない |
-r | ディレクトリを再帰的にコピーする |
-i 秘密鍵ファイル | ssh接続に使用する鍵ファイルを指定する |
-v | 詳細な実行状況を表示する |
オプションを使用しない例
オプションを使用せずに、コピーを行う例です。
ローカルからリモートへコピー
ローカルマシンからリモートマシンへコピーを行います。
scp コピー元 [接続先ユーザ]@ホスト名(IPアドレス):コピー先
[root@localhost workspace]# scp test_file_01.txt root@192.168.56.105:/home/workspace/ root@192.168.56.105's password: test_file_01.txt 100% 0 0.0KB/s 00:00
リモートからローカルへコピー
リモートマシンからローカルマシンへコピーを行います。
scp [接続先ユーザ]@ホスト名(IPアドレス):コピー元 コピー先
[root@localhost workspace]# scp root@192.168.56.105:/home/workspace/test_file_01.txt /home/workspace/ root@192.168.56.105's password: test_file_01.txt 100% 0 0.0KB/s 00:00
リモートマシン同士でコピー
リモートマシンからリモートマシンへコピーを行います。
scp [接続先ユーザ]@ホスト名(IPアドレス):コピー元 [接続先ユーザ]@ホスト名(IPアドレス):コピー先
ここでは、例としてリモートマシン上で「test_file_01.txt」を「test_file_02.txt」にリネームしつつコピーを行っています。
また、リモートマシン同士では、コピー元と先の2回パスワードを求められるようです。
[root@localhost workspace]# scp root@192.168.56.105:/home/workspace/test_file_01.txt root@192.168.56.105:/home/workspace/test_file_02.txt root@192.168.56.105's password: root@192.168.56.105's password: test_file_01.txt 100% 0 0.0KB/s 00:00 Connection to 192.168.56.105 closed.
-r オプションでディレクトリのコピー
[-r]オプションを使用することで、ディレクトリを再帰的にコピーすることが可能です。
書式
[-r]オプションを使用する場合の書式になります。
scp -r コピー元のパス コピー先のパス
実行例
下記は、ローカルマシンの「test_dir_01」ディレクトリをディレクトリ配下のファイルも含めて、リモートマシンにコピーする例です。
[root@localhost workspace]# scp -r test_dir_01/ root@192.168.56.105:/home/workspace/ root@192.168.56.105's password: test_file_01.txt 100% 0 0.0KB/s 00:00
-q オプションで実行状況を表示せずコピー
[-q]オプションを使用することで、コマンドの実行状況を表示せずにコピーを行うことが可能です。
シェルとかに組み込む際に使えそうなオプションですね。
書式
[-q]オプションを使用する場合の書式になります。
scp -q コピー元のパス コピー先のパス
実行例
下記のように実行状況が表示されずに処理が行われます。
[root@localhost workspace]# scp -q test_file_01.txt root@192.168.56.105:/home/wo rkspace/ root@192.168.56.105's password:
リンク
コメント