次のようなものを使用して、あるコンピュータから別のコンピュータにファイルを送信します。
ファイルを提供するには(コンピューターA):
cat something.Zip | nc -l -p 1234
ファイルを受信するには(コンピューターB):
netcat server.ip.here. 1234 > something.Zip
私の質問は...反対のことはできますか?コンピューターBにファイルがあり、それをAに送信したいが、上で書いた方法ではなく、ファイルを受信するはずのコンピューター(A)を「リスニング」サーバーにして、「送信」ファイルであるコンピューターに接続するとします( B)サーバーに送信してファイルを送信しますか?出来ますか?そうかもしれないと思いますが、これを行う方法がわかりません。
上記の説明がめちゃくちゃになっている場合:サーバーでファイルを提供してからそれを(上記で行ったように)取得するのではなく、「サーバー」にファイルを送信するにはどうすればよいですか?
サーバー(A):
nc -l -p 1234 -q 1> something.Zip </dev/null
cat something.Zip | netcat server.ip.here 1234
注意として、ファイルのアクセス許可、所有権、タイムスタンプも保持したい場合は、netcatとともにtarを使用して、ディレクトリとファイルの転送を行います。
受信システム:
nc -l -p 12345 -q 1 | tar xz -C /path/to/root/of/tree
送信システムから:
tar czf - ./directory_tree_to_xfer | nc <Host name or IP address of receiving system> 12345
お役に立てば幸いです。
コンピューターA:nc -l -p 1234 > filename.txt
コンピュータB:nc server.com 1234 < filename.txt
あまりにも動作するはずです;)
コンピューターBでnetcatの別のインスタンスを起動します。コンピューターAで実行したことを実行し、Bからサービスを提供します。新しいサーバーに新しいポートを割り当てます。