ウェブサイト検索

nc および pv コマンドを使用して 2 台のコンピュータ間でファイルを転送する方法


Linux 読者の皆さん、Linux のヒントとコツ シリーズからまた素晴らしい記事をお届けします。今回は、知っておくべき 2 つのあまり知られていない Linux ユーティリティを使用します。

この記事では、nc (ネットワーク ユーティリティ) と pv (パイプ ビューア) を使用して 2 台の Linux コンピュータ間でファイルを転送する方法について説明します。) コマンドについて説明します。先に進む前に、これら 2 つのコマンドが何であるかを説明します。

ncNetcat の略で、「スイス アーミー ナイフ」はネットワークのデバッグと調査に使用されるネットワーク ツールであるとよく指摘されます。 TCP または UDP を使用したネットワーク接続の作成、ポート スキャン、ファイル転送などに使用します。これは、ほぼあらゆる種類のネットワーク接続を生成でき、多くの機能が組み込まれているため、信頼できるバックエンドとして作成され、特にプログラムやスクリプトで使用されます。

簡単に言えば、pv パイプ ビューアは、パイプラインを介して送信されるデータの進行状況を監視するためのターミナル ベースのツールです。これを使用すると、ユーザーは進行状況バーでデータの進行状況を確認し、経過時間、完了率、現在のスループットを表示できます。速度、転送された合計データ、プロセスの完了までの推定時間。

pv (パイプ ビューアー) コマンドを使用してデータの進行状況を監視する方法

次に、さらに進んで、両方のコマンドを組み合わせて 2 台の Linux コンピューター間でファイルを転送する方法を見てみましょう。この記事では、次のように 2 台の Linux マシンを使用します。

Machine A with IP : 192.168.0.4
Machine B with IP : 192.168.0.7

注: ログインや認証を使用しないため、パブリック ネットワーク上でのデータの送受信に netcat を使用しないことを強くお勧めします。唯一の要件はクライアント IP とリスニング ポート番号であり、ネットワーク経由で送信されるデータは保護されていないため、常に上級 Linux ユーザー向けに予約されており、保護されたローカル ネットワークでの使用が推奨されます。

データのセキュリティがより重要な状況では、常に SSH 経由の rsync または SSH 経由の scp を使用してください。

ここで、nc および pv コマンドの簡単な例から始めましょう。ただし、その前に、両方のユーティリティをシステムにインストールする必要があります (インストールしない場合は、それぞれの配布パッケージ マネージャーを使用してください)。提案されたツール:

yum install netcat pv        [On RedHat based systems]
dnf install netcat pv        [On Fedora 22+ versions]
apt-get install netcat pv    [On Debian and its derivatives]

2 台の Linux マシン間でファイルを転送するにはどうすればよいですか?

CentOS-7-x86_64-DVD-1503.iso という 1 つの大きなファイルをネットワーク経由でコンピュータ A から B に送信するとします。 、TCP ネットワーク経由でファイルを送信するために使用されるネットワーク ユーティリティである nc 、データの進行状況を監視するために使用される pv 、および tar を使用してこれを達成する最も簡単な方法データを圧縮して転送速度を向上させるユーティリティ。

Linux マシン A 上

まず、IP アドレス 192.168.0.4 でマシン「A」にログインし、次のコマンドを実行します。

tar -zcf - CentOS-7-x86_64-DVD-1503.iso | pv | nc -l -p 5555 -q 5

上記のコマンドで使用されるオプションについて説明します。

  1. tar -zcf=tar は、アーカイブ ファイルの圧縮/解凍に使用されるテープ アーカイブ ユーティリティです。引数 -c は、新しい .tar アーカイブ ファイル -f を作成します。 アーカイブ ファイルのタイプを指定し、-z で gzip 経由でアーカイブをフィルタリングします。
  2. CentOS-7-x86_64-DVD-1503.iso=ネットワーク経由で送信するファイル名を指定します。ファイル名またはディレクトリへのパスを指定できます。
  3. pv=データの進行状況を監視するパイプ ビューア。
  4. nc -l -p 5555 -q 5=TCP 経由でデータの送受信に使用されるネットワーキング ツールと、着信接続をリッスンするために使用される引数 -l です。- p 555 は使用する送信元ポートを指定し、 -q 5 は秒数待機してから終了します。

Linux マシン B 上

次に、IP アドレス 192.168.0.7 でマシン「B」にログインし、次のコマンドを実行します。

nc 192.168.1.4 5555 | pv | tar -zxf -

これで、ファイルがコンピュータ B に転送され、操作の実行速度が確認できるようになります。 nc コマンド (まだ説明していませんが、すぐに書きます) と pv コマンド (これについてはすでにここで詳細に説明しています) の優れた使用法が他にもたくさんあります。 、例をご存知の場合は、コメントでお知らせください。