SCPはセキュアコピーの略です。これは、サーバー間でファイルとディレクトリを安全にコピーするために使用されるLinuxコマンドラインユーティリティです。 SCPはSSHプロトコルを使用するため、サーバー間でパスワードまたはパスワードなしの認証が必要です。 SCPを使用すると、ローカルシステムから2つのリモートホスト間でファイルをコピーしたり、ローカルホストとリモートホスト間でファイルをコピーしたりできます。
このチュートリアルでは、例を使用してSCPコマンドの使用方法を示します。
前提条件
- Atlantic.netクラウドプラットフォーム上の新しいUbuntu18.04VPS。
- サーバーで構成されているrootパスワード。
Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。少なくとも1GBのRAMを搭載したオペレーティングシステムとしてUbuntu18.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
Ubuntu 18.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
apt-get update -y
1。 SCP構文
SCPコマンドの基本的な構文を以下に示します。
scp [option] [email protected]:/file_or_directory [email protected]:/ directory
ユーザー: ユーザーの名前。
source-ip: ファイルまたはディレクトリをコピーするシステムのIPアドレス。
dest-ip: システム宛先システムのIPアドレス。
scpコマンドで使用されるオプションの一部を以下に示します。
-P: 宛先ホストのsshポート番号を指定します。
-r: ファイルとディレクトリを再帰的にコピーするために使用されます。
-v: ファイル転送中に詳細出力を表示するために使用されます。
-C: ファイル圧縮を有効にするために使用されます。
-i: SSHキーを指定します。
-l: コピー中の帯域幅を制限するために使用されます。
-p: コピー中にファイルのアクセス許可、モード、およびアクセス時間を保持するために使用されます。
2。ローカルホストからリモートホストへのファイルのコピー
/etc/rc.localという名前のファイルをローカルホストから/mntディレクトリのリモートホスト(172.20.10.3)にコピーする場合は、次のコマンドを実行します。
scp /etc/rc.local [email protected]:/ mnt /
次の出力が表示されます。
[email protected]のパスワード:rc.local複数のファイルをコピーする場合(この例では、 / etc / fstabを使用します および/etc / hosts、 それらをリモートホスト(172.20.10.3)の/ mntディレクトリにコピーします)、次のコマンドを実行します:
scp / etc / fstab / etc / hosts [email protected]:/ mnt /次の出力が表示されます。
[email protected]'s password:fstab 100% 628 0.6KB/s 00:00 hosts 100% 249 0.2KB/s 00:003。ファイルとディレクトリを再帰的にコピーする
SCPで再帰オプション-rを使用して、ディレクトリ全体をあるシステムから別のシステムにコピーできます。
たとえば、 / var / log / apache2という名前のディレクトリをコピーするには ローカルホストから/mntディレクトリ内のリモートホスト(172.20.10.3)に再帰的に、次のコマンドを実行します。
scp -r /var/log/apache2 [email protected]:/ mnt /次の出力が表示されます。
[email protected]'s password:error.log 100% 0 0.0KB/s 00:00 access.log.3.gz 100% 61KB 61.3KB/s 00:00 other_vhosts_access.log 100% 0 0.0KB/s 00:00 access.log.4.gz 100% 317 0.3KB/s 00:00 error.log.3.gz 100% 1622 1.6KB/s 00:00 error.log.1 100% 2352 2.3KB/s 00 :00 access.log 100% 0 0.0KB/s 00:00 access.log.1 100% 1287 1.3KB/s 0 0:00 access.log.2.gz 100% 239 0.2KB/s 00:00 error.log.2.gz 100% 246 0.2KB/s 00:00 error.log.5.gz 100% 1471 1.4KB/ s 00:00 error.log.4.gz 00:00>> 100%2296SCPで-vオプションを使用して、コピープロセス中に詳細出力を表示することもできます。
scp -vr / var / log / apache2 [email protected]:/ mnt /4。リモートホストからローカルホストへのファイルのコピー
/ etc / hostnameという名前のファイルをリモートホスト(172.20.10.3)から/ optディレクトリのローカルホストにコピーする場合は、次のコマンドを実行します。
scp [email protected]:/ etc / hostname / opt /次の出力が表示されます。
[email protected]のパスワード:ホスト名600%00%5。あるリモートホストから別のリモートホストへのファイルのコピー
2つのリモートホスト間でファイルとディレクトリをコピーするには、両方のリモートホスト間でSSHキーベースの認証を構成する必要があります。
キーベースの認証を構成した後、/ var / logという名前のディレクトリを1つのリモートホスト(172.20.10.3)から/ mntディレクトリ内の別のリモートホスト(172.20.10.4)にコピーし、次のコマンドを実行します。
scp -r [email protected]:/ var / log [email protected]:/ mnt /6。コピー中の帯域幅の使用を制限する
SCPで-lオプションを使用して、コピープロセス中の帯域幅を制限できます。
たとえば、google-chrome-stable_current_amd64.debという名前のファイルをローカルホストから/ optディレクトリのリモートホスト(172.20.10.3)にコピーし、帯域幅を1000 KB /秒(1000×8)に制限するには、次のコマンドを実行します。
scp -l 8000 /home/vyom/Downloads/google-chrome-stable_current_amd64.deb [email protected]:/ opt /次の出力が表示されます。
[email protected]のパスワード:google-chrome-stable_current_amd64.deb 60 MB 100%017。 SCPで特定のポートを指定する
場合によっては、SSHポートは宛先ホストで異なります。この場合、-Pオプションを使用してSSHポートを指定できます。
たとえば、ローカルシステム上の/ etc / hostsという名前のファイルを、ポート8088を使用して/ mntディレクトリのリモートホスト(172.20.10.3)にコピーするには、次のコマンドを実行します。
scp -P 8088 / etc / hosts [email protected]:/ mnt /8。コピー中の圧縮の有効化
SCPで-Cオプションを使用して、送信元での圧縮と宛先ホストでの解凍を有効にすることができます。これにより、大きなファイルの転送速度が上がる可能性があります。
たとえば、ディレクトリをコピーするには / var / log / nginx ローカルホストから/mntディレクトリのリモートホスト(172.20.10.3)に圧縮して、次のコマンドを実行します。
scp -r -C / var / log / nginx [email protected]:/ mnt /次の出力が表示されます。
[email protected]'s password:error.log 100% 0 0.0KB/s 00:00 access.log.3.gz 100% 217 0.2KB/s 00:00 error.log.1 100% 974 1.0KB /s 00:00 access.log 100% 0 0.0KB/s 00:00 access.log.1 100% 90 0.1KB/s 00:00 access.log.2.gz 100% 239 0.2KB/s 00:009。コピー中のファイルのアクセス許可、モード、およびアクセス時間を保持する
SCPで-pオプションを使用すると、コピープロセス中にアクセス許可、アクセス時間、およびモードを保持できます。
たとえば、 magento-ce-2.3.5-p1-2020-04-24-08-59-28.tar.bz2という名前のファイルをコピーするには ローカルホストから/mntディレクトリのリモートホスト(172.20.10.3)にアクセスし、アクセス許可、アクセス時間、およびモードを保持するには、次のコマンドを実行します。
scp -p /home/vyom/Downloads/magento-ce-2.3.5-p1-2020-04-24-08-59-28.tar.bz2 [email protected]:/ mnt />次の出力が表示されます。
[email protected]のパスワード:magento-ce-2.3.5-p1-2020-04-24-08-59-28.tar.bz2結論
上記のガイドでは、SCPを使用してファイルとディレクトリをあるサーバーから別のサーバーに安全に転送する方法を学びました。今すぐAtlantic.NetのVPSホスティングアカウントでSCPを始めましょう!
Linux