
SCPは、ネットワーク上のLinuxホスト間でファイルまたはディレクトリを転送するための安全なコピープログラムです。 SCPはsshプロトコルを使用してデータを転送します。
次のようにファイルまたはディレクトリを転送できます。
1)ローカルホストからリモートホストへ。
2)ローカルシステムへのリモートシステム。
3)ローカルシステムから2つのリモートホスト間で転送します。
このチュートリアルでは、Linuxシステム間でファイルを転送するためのいくつかのscpコマンドを学びましょう。
1)scpコマンドを使用してリモートホストからローカルにファイルをコピーします
次の例では、「file_for_copy.txt」という名前のファイルをリモートシステム「192.168.1.10」からローカルシステムの現在のディレクトリ(ドットは現在のディレクトリを示します)にコピーします。
$ scp [email protected]:/home/bobby/file_for_copy.txt .
[email protected]'s password:
file_for_copy.txt 100% 0 0.0KB/s 00:00
bobby@Inspiron-1440:~$ ls
file_for_copy.txt
scpコマンドを使用してリモートホストからローカルにディレクトリをコピーします
ディレクトリは-r
でコピーできます オプション(cpなどのほとんどのコマンドと同様)、つまり再帰的に、ディレクトリ内のすべてのコンテンツもコピーできます
$ scp -r [email protected]:/home/bobby/dir_for_copy .
[email protected]'s password:
file1.txt 100% 0 0.0KB/s 00:00
file3.txt 100% 0 0.0KB/s 00:00
file2.txt 100% 0 0.0KB/s 00:00
$ ls -ld dir_for_copy
drwxrwxr-x 2 bobby bobby 4096 2012-11-07 15:11 dir_for_copy
3)ローカルホストからリモートホストにファイルをコピーします
scpの-vオプションは、詳細な出力を出力します。これにより、scpが実行され、進行状況に関するデバッグメッセージも出力されます。次の例では、-vオプションが使用されています。ここでは、ローカルファイルがリモートホストにコピーされます。
$ scp -v examples.desktop [email protected]:/home/bobby
同様に、ディレクトリは-r
でコピーできます。 オプション。次の例では、jvmという名前のディレクトリがリモートホストにコピーされます。
$ scp -r jvm [email protected]:/tmp
[email protected]'s password:
file2.txt 100% 42 0.0KB/s 00:00
file.txt 100% 39 0.0KB/s 00:01
4)ローカルホストから2つのリモートホスト間でファイルをコピーする
2つのホスト間でファイルをコピーするには、sshサービスが両方のマシンで実行されている必要があります。 -3
オプションは、ローカルホストを介して2つのリモートホスト間でファイルを転送します。次のコマンドは、ファイル/home/bobby/myfile1.txtをマシン192.168.1.10から192.168.1.20マシンの/ tmpディレクトリに、詳細な出力でコピーします。
$ scp -3 -v [email protected]:/home/bobby/myfile1.txt [email protected]:/tmp
同様に、ディレクトリは-rオプションを使用して2台のリモートマシン間でコピーできます。
$ scp -3 -r [email protected]:/home/bobby/mydir [email protected]:/tmp
[email protected]'s password:
Could not chdir to home directory /home/bobby: No such file or directory
[email protected]'s password:
5)ポート番号のあるSCP
リモートマシンのSSHポートが(デフォルトのSSHポート22ではなく)2200であるとします。次に、-P
を指定してscpコマンドを実行する必要があります 次のオプション:
$ scp –P 2200 -r test_folder [email protected]:/home/test/
6)Scpコマンド複数のファイル(1つのライナー)をコピーします
以下のscpコマンドを使用すると、複数回実行しなくても、一度に複数のファイルをコピーできます
$ scp file1.txt file2.txt file3.txt [email protected]:/home/bobby
7)ファイルのタイムスタンプを変更せずにファイルをコピーします
元のファイルのタイムスタンプを保持したい場合があります。ただし、通常の方法でそれらを別の場所にscpすると、タイムスタンプが変更されます。ただし、-p
を使用する オプションで、以下のように、同じ元のタイムスタンプを持つファイルをコピーできます。
$ scp -p file1.txt [email protected]:/home/bobby
8)高速SCPコピーファイル
デフォルトでは、ScpはAES-128を使用してデータを暗号化します。これは、セキュリティが高いためです。ただし、これの欠点は、ファイルのコピープロセスが少し遅くなることです。ただし、ファイルをより高速に安全にコピーしたい場合は、以下のようにBlowfishまたはRC4を使用できます。
$ scp -c blowfish [email protected]:/home/user/file .
$ scp -c arcfour [email protected]:/home/user/file .
9)セキュリティが強化されたScpコマンド
探しているセキュリティであれば、3DESを使用してより安全な方法でファイルをコピーできます。ただし、これによりプロセスが少し遅くなります。
$ scp -c 3des [email protected]:/home/user/file .
10)帯域幅が制限されたScpコマンド
scpコマンドを使用する場合、以下のように帯域幅を制限できます(ここでは帯域幅はKbit / sで指定されます)。
$ scp -l50 [email protected]:/home/user/file .
11)IPV4およびIPV6を使用したScpコマンド
必要に応じて、以下のようにscpコマンドでIPV4またはIPV6を使用するように強制できます
$ scp -4 [email protected]:/home/user/file .
$ scp -6 [email protected]:/home/user/file .
結論
例を使用してscpコマンドを使用する方法についてのこのチュートリアルをお楽しみいただけたでしょうか。詳細については、scpコマンドのマニュアルページを参照することをお勧めします。