GNU/Linux >> Linux の 問題 >  >> Linux

SCPを使用してファイルを安全に転送する方法

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:00

3。ファイルとディレクトリを再帰的にコピーする

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%2296 

SCPで-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%01 

7。 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:00 

9。コピー中のファイルのアクセス許可、モード、およびアクセス時間を保持する

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
  1. Linuxでファイルを安全に転送するための14のSCPコマンド例

  2. SCPとSFTPを使用してLinuxホスト間でファイルを安全にコピーする方法

  3. scp を使用して複数のファイルを同時にコピーする方法

  1. Crocを使用してコンピュータ間でファイルとフォルダを安全に転送する

  2. SCP と Rsync を使用して Linux でファイルを転送する方法

  3. Linux で SCP コマンドを使用してファイルを安全に転送する方法

  1. SCPとFTPを使用してLinuxのサーバー間でファイルを転送する方法

  2. sftp を使用してファイルを安全に転送する方法 (例を含む)

  3. scp を使用してファイルの .txt ファイル リストを転送する