リモートマシンとローカルマシン、あるいはリモートマシン同士でファイルをコピーする際に使用する Linux コマンドです。
通信には ssh を使用し、ssh コマンド同様に転送データを暗号化して通信を行います。
※ssh を使用するため、ssh 接続できることが前提となります。
コマンド
コマンドの基本は、以下のような形式になります。
$ scp [オプション] コピー元パス コピー先パス
オプション
オプション | 説明 |
-i [秘密鍵ファイル] | ssh 接続時に使用する鍵ファイルを指定 |
-P [ポート番号] | ssh 接続に使用するポートを指定 |
-p | コピー元のタイムスタンプやパーミッションを保持 |
-r | ディレクトリごと再帰的にコピー |
-C | 通信を圧縮 |
-4 | IPv4 を使用 |
-6 | IPv6 を使用 |
コマンド早見表
・ローカルからリモートへコピー(アップロード)
$ scp local.txt username@server.com:/server/dir
・リモートからローカルへコピー(ダウンロード)
$ scp username@server.com:/server/dir/remote.txt /local/dir
・ディレクトリごとローカルからリモートへコピー(アップロード)
$ scp -r local/dir username@server.com:/server/dir
・ディレクトリごとリモートからローカルへコピー(ダウンロード)
$ scp -r username@server.com:/server/dir /local/dir
・認証鍵接続でローカルからリモートへコピー(アップロード)
$ scp -i ~/.ssh/id_rsa local.txt username@server.com:/server/dir
・認証鍵接続でリモートからローカルへコピー(ダウンロード)
$ scp -i ~/.ssh/id_rsa username@server.com:/server/dir/remote.txt /local/dir
・ポート番号指定でローカルからリモートへコピー(アップロード)
$ scp -P 2222 local.txt username@server.com:/server/dir
・ポート番号指定でリモートからローカルへコピー(ダウンロード)
$ scp -P 2222 username@server.com:/server/dir/remote.txt /local/dir
尚、複数ファイルを指定する場合は、スペースを空けて列挙したり、*.txt とワイルドカードを使用することもできます。
$ scp local1.txt local2.txt username@server.com:/server/dir
$ scp *.txt username@server.com:/server/dir
コメント