如何使用netcat写入文件?并将其设置为增长到一定大小并开始覆盖自身?

如何使用netcat写入文件?并将其设置为增长到一定大小并开始覆盖自身?

我目前正在编写一个打印到 Zebra 打印机的程序。因为我的办公室没有 zebra 打印机,所以我们打印到运行 netcat 的 Linux VM,以便nc -k -l -p 9100 | tee labels.txt我们可以查看打印机的输出并验证正确性。

不幸的是,这个文件变得非常大并占用了虚拟机上的大量空间,特别是因为没有人记得清除它。

使用tee似乎是写入文件的一个不错的选择,但它的功能并不像我想要的那样。我希望它只label.txt增长到一定大小(例如 20 MB),此时它开始覆盖自身。或者可能重命名label.txtlabel.txt.1,允许 label.txt 增长然后覆盖label.txt.1

有什么办法可以用netcat/做到这一点吗tee?或者我应该看看另一个程序?

答案1

netcat回答你的问题,或中没有任何功能tee可以实现这一点。

也许您可以编写一个 cron 作业,该作业每分钟运行一次并检查 的大小label.txt,当达到 20MB 时,清除前 10MB。

答案2

有几个步骤可以达到您想要的效果。

首先,您需要放入nc -k -l -p 9100 | tee labels.txt脚本中,并添加一个处理程序以SIGHUP重新启动命令。

接下来,您需要设置logrotate轮换日志。

相关内容