如何覆盖 netcat 写入的目标文件而不是附加?

如何覆盖 netcat 写入的目标文件而不是附加?

我有两个 ubuntu 服务器,并且将在发送服务器上使用一个脚本(尽管我还没有编写它),以便在文件 abcd.txt 发生更改时发送它:

nc 10.10.10.4 3333 < abcd.txt

在侦听服务器上,我使用-k选项来保持其持续侦听:

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

我的目标是每次发送服务器发送文件时都覆盖侦听服务器上的文件。这并没有发生。相反,整个文件被附加,导致重复的行。有没有办法来解决这个问题?我对使用 netcat 之外的选项持开放态度。

另请注意,由于文件非常大并且施加了时间限制,一旦 abcd.txt 到达侦听服务器,我就无法使用 sort 或 uniq 命令来更改它。 (我们可能会在发送端每隔 60 秒左右滚动一次文件。)

答案1

我认为这里的问题是这nc不是正确的解决方案。监听nc永远不会退出,因此它将继续附加到文件中。

为什么不使用scprsync?如果您已sshd在目标计算机上运行,​​则可以使用其中之一。如果还没有,要么这样做,要么rsync以守护程序模式运行。

每次您启动scprsync发送方时,接收方都会覆盖该文件。

相关内容