我目前正在编写一个打印到 Zebra 打印机的程序。因为我的办公室没有 zebra 打印机,所以我们打印到运行 netcat 的 Linux VM,以便nc -k -l -p 9100 | tee labels.txt
我们可以查看打印机的输出并验证正确性。
不幸的是,这个文件变得非常大并占用了虚拟机上的大量空间,特别是因为没有人记得清除它。
使用tee
似乎是写入文件的一个不错的选择,但它的功能并不像我想要的那样。我希望它只label.txt
增长到一定大小(例如 20 MB),此时它开始覆盖自身。或者可能重命名label.txt
为label.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
轮换日志。