我有两个 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
永远不会退出,因此它将继续附加到文件中。
为什么不使用scp
或rsync
?如果您已sshd
在目标计算机上运行,则可以使用其中之一。如果还没有,要么这样做,要么rsync
以守护程序模式运行。
每次您启动scp
或rsync
发送方时,接收方都会覆盖该文件。