nc(netcat)で超簡易ファイル転送

ncを使えばなんでもできる!

なんでも出来すぎて困っちゃうので、これ知っとけば便利ですよ的なおすすめ使い方を1つ書く。思いつきで。

ファイル転送

このファイルを ○○サーバにupしたいけど、ここからだとFTP/SSHの許可設定が入ってなくて接続できないなー、とかいうときに。

ncはdebian/redhatのdistribution packageで オプションが違った気がするので少し注意。この例はredhat系。

送信側

適当に空いてるport番号でlistenする。ここでは10000番を使用。標準入力で送信したいファイルを指定。

$ nc -l 10000 < filename

受信側

送信側ホストの10000番に接続。標準出力をリダイレクトして、ファイル保存。

$ nc 送信側ホストのIP 10000 > filename
確認

実行してみればわかるけど、ncはファイル送受信専用なsoftwareではないので、完了しても何も表示されず終了する(送受信サイズが表示されたりしない)。なので正しくファイルが受信できているかどうかは、それぞれのサーバでmd5値等でも調べておいたほうが良いかも。

$ md5sum filename

追記

TCPで送受信しているんだし、ncが正常終了してたらわざわざmd5値なんか見なくても良い気がしたけどまあいい。