nc および pv コマンドを使用して 2 台のコンピュータ間でファイルを転送する方法
Linux 読者の皆さん、Linux のヒントとコツ シリーズからまた素晴らしい記事をお届けします。今回は、知っておくべき 2 つのあまり知られていない Linux ユーティリティを使用します。
この記事では、nc (ネットワーク ユーティリティ) と pv (パイプ ビューア) を使用して 2 台の Linux コンピュータ間でファイルを転送する方法について説明します。) コマンドについて説明します。先に進む前に、これら 2 つのコマンドが何であるかを説明します。
nc は Netcat の略で、「スイス アーミー ナイフ」はネットワークのデバッグと調査に使用されるネットワーク ツールであるとよく指摘されます。 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
上記のコマンドで使用されるオプションについて説明します。
- tar -zcf=tar は、アーカイブ ファイルの圧縮/解凍に使用されるテープ アーカイブ ユーティリティです。引数 -c は、新しい .tar アーカイブ ファイル -f を作成します。 アーカイブ ファイルのタイプを指定し、-z で gzip 経由でアーカイブをフィルタリングします。
- CentOS-7-x86_64-DVD-1503.iso=ネットワーク経由で送信するファイル名を指定します。ファイル名またはディレクトリへのパスを指定できます。
- pv=データの進行状況を監視するパイプ ビューア。
- 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 コマンド (これについてはすでにここで詳細に説明しています) の優れた使用法が他にもたくさんあります。 、例をご存知の場合は、コメントでお知らせください。