linuxコマンドでリモートとローカル間のファイル転送を行いたいと考えているが、scpコマンドの使い方がわからないという方いらっしゃると思います。
私も初心者の頃はscpコマンドの使い方がわからず、ネットで調べながらscpコマンドを使用していました。
初心者の方にとっては、scpコマンドの使い方は少し難しいと感じることが多いと思いますが、業務の中でも使う機会の多いコマンドになりますので、覚えておくことをおすすめします。
scpコマンドの使い方を知りたい方や初心者インフラエンジニアの方はぜひ、参考にしてみてください。
linux scpコマンドとは
scpコマンドのオプションや使い方を説明する前にまずscpコマンドはどういうときに使うコマンドなのか説明していきます。
scpコマンドとは、リモートサーバとローカルサーバ間のファイル転送を可能にするコマンドになります。
例えば、192.168.0.0というIPのローカルサーバから10.1.0.0というIPのリモートサーバへのファイル転送を行いたい場合には、scpコマンドを使用してファイルの転送を行います。
主にローカルサーバとリモートサーバでファイルの内容を同じにしたい場合などに使用します。
linux scpコマンドのオプション
scpコマンドのオプションについて実際にどういう書式で実行するのかを含めて説明していきます。
scpコマンドの使い方が最初は難しいと感じる方多くいらっしゃると思いますが、覚えるとすごく便利になるのでぜひ、参考にしてみてください。
オプション | 説明 |
-C | 通信を暗号化する |
-i | RSAまたはDSA認証の秘密鍵を指定する |
-P | ポート番号を指定する |
-p | パーミッションを保持した状態でコピーする |
-r | ディレクトリ内を再帰的にコピーする |
-v | 情報を表示する |
-1 | SSHのプロトコルバージョン1を使用する |
-2 | SSHのプロトコルバージョン2を使用する |
-C・・・通信を暗号化する
ーCオプションは通信を圧縮するオプションになります。
主にディレクトリごとコピーする時やコピー対象ファイルの容量が大きい時などのファイルの転送時間がかかってしまう際に使用します。
-Cオプションを使うと通信を圧縮してから、ファイルの転送を行うため、ファイルの転送時間を短縮することができます。
-i・・・RSAまたはDSA認証の秘密鍵を指定する
-iオプションは、RSAやDSA認証の鍵を指定するオプションになります。
主に転送先のサーバに鍵の設定がされており、ログイン時に鍵を使用してログインする必要がある場合などに-iオプションを使用し、鍵を指定してファイルの転送を行う必要があります。
そのため、転送先のサーバが鍵で保護されている場合には、-iオプションを使用し、ファイル転送を行います。
-P・・・ポート番号を指定する
-Pオプションはポート番号を指定するコマンドにないます。
scpコマンドを使用する際には、デフォルトで22番ポート使用します。
SSHの待ち受けポートを22番ポートから変更されている場合には、-Pオプションをつけて変更後のポート番号を指定することで通常通りにscpコマンドが使用出来るようになります。
そのため、SSHの待ち受けポートを22番から変更している場合には、-Pオプションを使用します。
-p・・・パーミッションを保持した状態でコピーする
ーpオプションはパーミッションを保持した状態でコピーするオプションになります。
基本的にファイルをコピーする際には、パーミッションが変わってしまうため、パーミッションを保持した状態でコピーした場合に使用します。
パーミッションが書き換わってしまうと、コピー前にはできたファイルの更新や読みとりなどの動作が一定のユーザでできなくなってしまう恐れがあります。
ファイルのコピーを行う際には、パーミッションを保持した状態でコピーすることをおすすめします。
-r・・・ディレクトリ内を再帰的にコピーする
ーrオプションは、ディレクトリごとコピーするコマンドになります。
オプションをつけずにコピーする場合にはディレクトリごとのコピーはすることができません。
ーrオプションをつけることでファイルのみのコピーではなくディレクトリごとコピーすることが可能になります。
ーv・・・情報を表示する
ーvオプションは、scpコマンド実行時の詳細な情報を表示するオプションになります。
オプションをつけずにscpコマンドを使用するとファイル転送できたことの確認はできますが、詳細な情報は表示されません。
scpコマンド実行時に詳細な情報を表示したい場合には、ーvオプションを使用します。
ー1・・・SSHのプロトコルバージョン1を使用する
ー1オプションは、SSHのプロトコルバージョン1を使用してファイル転送を行うオプションになります。
scpコマンド実行時にSSHのプロトコルバージョン1を使用する場合には、ー1オプションを使用します。
ー2・・・SSHのプロトコルバージョン2を使用する
ー2オプションは、SSHのプロトコルバージョン2を使用してファイル転送を行うオプションになります。
scpコマンド実行時にSSHのプロトコルバージョン2を使用する場合には、ー2オプションを使用します。
linux scpコマンドの関連コマンド
scpコマンドと使用用途が似ているコマンドを紹介していきます。
使用用途が似ているので、その場面によってどのコマンドを使用すればいいのか考えながら使用しましょう。
cpコマンド
cpコマンドは、ローカルファイルのコピーを行うコマンドになります。
scpコマンドはリモートとローカル間のファイルの転送で、cpコマンドはローカルとローカルでのファイル転送を行うコマンドになります。
cpコマンドは、自サーバ内のみのファイルの転送が可能なコマンドになります。
rsyncコマンド
rsyncコマンドはファイルの差分をコピーするコマンドになります。
rsyncコマンドに関してもcpコマンドと同様でローカル間のファイル転送でのみ使用することができます。
ファイルの差分のみのコピーになるため、cpコマンドに比べて処理の速度が早いです。
linux scpコマンド関連でよくある質問
scpコマンド関連でよくある質問をまとめました。
scpコマンドで気になる箇所がある方はまず、こちらを参照してください。
まとめ
いかがでしたか。
本記事では、linuxでリモートとローカル間のファイル転送を行うscpコマンドについて解説してきました。
コマンドの使い方が難しそうと思う方いらっしゃると思いますが、慣れればかなり便利なコマンドになります。
scpコマンドの使い方を知りたい方やlinux初心者の方はぜひ、参考にしてみてください。
・linux scpコマンドのオプション
・関連コマンド
・linux scpコマンド関連でよくある質問