Bash scpコマンド
1. scpコマンドの使用方法
scpコマンドは、ネットワーク上のホスト間でファイルを安全に(セキュアに)コピーするために使用されます。
1.1 基本的な使い方
ファイルをリモートホストにコピーするには、scp ファイル ユーザー名@ホスト名:/パス の形式を使用します。
例:
scp file.txt [email protected]:/home/user/
# パスワードの入力が求められます
[email protected]'s password:
file.txt2. オプション
scpコマンドはその動作をカスタマイズするために、様々なオプションをサポートしています。
-r- ディレクトリ全体を再帰的にコピーする-P- リモートホストへの接続ポートを指定する-i- アイデンティティファイル(秘密鍵)を指定する-C- 圧縮を有効にする-v- 詳細モード(Verbose mode)を有効にする-l- コピーに使用する帯域幅を制限する
3. -rオプション(再帰的コピー)
-rオプションを使用すると、ディレクトリ全体をその中身を含めて再帰的にコピーできます。
例:再帰的コピー
scp -r /path/to/directory [email protected]:/home/user/
[email protected]'s password:
1.png 100% 1797KB 2.7MB/s 00:00
2.png 100% 1873KB 3.2MB/s 00:00
3.png 100% 1808KB 3.9MB/s 00:00
...4. -Pオプション(ポート指定)
-Pオプションを使用すると、リモートホストの接続先ポート番号を指定できます。
デフォルトでは、SCPはポート 22 を使用します。
例:ポートの指定
scp -P 2222 file.txt [email protected]:/home/user/
[email protected]'s password:
file.txt5. -iオプション(アイデンティティファイル)
-iオプションを使用すると、認証のためのプライベートキー(秘密鍵)ファイルを指定できます。
特定のサーバー専用のキーを使用する場合に非常に便利です。
例:プライベートキーを使用
scp -i /path/to/private_key file.txt [email protected]:/home/user/
file.txt6. -Cオプション(圧縮)
-Cオプションは圧縮を有効にします。ネットワーク経由で送信されるデータ量を削減し、転送速度を向上させることができます。
例:圧縮の有効化
scp -C file.txt [email protected]:/home/user/
[email protected]'s password:
file.txt7. -vオプション(詳細モード)
-vオプションは詳細モード(Verbose mode)を有効にし、ファイル転送プロセスの詳細な情報を出力します。
デバッグを行う際に非常に役立ちます。
例:詳細モード
scp -v file.txt [email protected]:/home/user/
# 実行中の詳細ログが出力されます
Executing: program /usr/bin/ssh host example.com, user user, command scp -v -t /home/user/
file.txt 100% 1234KB 1.2MB/s 00:01
...8. -lオプション(帯域制限)
-lオプションを使用すると、コピーで使用する帯域幅(バンド幅)を制限できます。ネットワークリソースを管理したい場合に有用です。
例:帯域制限
# 帯域幅を制限して転送
scp -l 100 file.txt [email protected]:/home/user/
[email protected]'s password:
file.txt9. scpの出力を理解する
scpコマンドの出力内容は、使用するオプションによって異なりますが、一般的には以下の要素が含まれます。
- 転送進捗(Transfer Progress): ファイル転送の進み具合を表示します。
- ファイルサイズ(File Size): 転送されているファイルのサイズ。
- 転送速度(Transfer Speed): データが転送されている速度。
- 残り時間(Time Remaining): 転送完了までの推定残り時間。