web-dev-qa-db-ja.com

追加するのではなく、netcatが書き込む宛先ファイルを上書きするにはどうすればよいですか?

私は2つのubuntuサーバーを持っており、送信サーバーでスクリプトを使用して(まだ記述していませんが)、次のコマンドを使用して変更されるたびにファイルabcd.txtを送信します。

nc 10.10.10.4 3333 < abcd.txt

リスニングサーバーでは、-kオプションを使用して、継続的にリスニングを維持しています。

nc -k -l 3333 > /home/abcd.txt

私の目標は、送信サーバーがファイルを送信するたびに、リスニングサーバー上のファイルを上書きすることです。これは起こっていません。代わりに、ファイル全体が追加され、行が重複します。これを修正する方法はありますか?私はnetcatを使用するよりもオプションを受け入れています。

また、ファイルが非常に大きく、タイミングの制約が課せられているため、リスニングサーバーに到達した後、sortまたはuniqコマンドを使用してabcd.txtを変更することはできません。 (送信側のファイルは60秒ごとにローリングする可能性があります。)

1
Preston Roy

ここでの問題は、ncが正しい解決策ではないということだと思います。リスニングncは終了しないため、ファイルに追加し続けます。

scpまたはrsyncを使用してみませんか?ターゲットマシンでsshdを実行している場合は、どちらかを使用できます。まだ実行していない場合は、実行するか、デーモンモードでrsyncを実行します。

送信者でscpまたはrsyncを起動するたびに、受信者はファイルを上書きします。

1
Bob Eager