Netcat

如何使用 netcat 寫入文件?並將其設置為增長到一定大小並開始覆蓋自己?

  • October 3, 2014

我目前正在編寫一個列印到 Zebra 列印機的程序。因為我的辦公室沒有斑馬列印機,所以我們列印到執行 netcat 的 linux VM 上,nc -k -l -p 9100 | tee labels.txt這樣我們就可以查看列印機的輸出並驗證正確性。

不幸的是,這個文件變得非常大,佔用了 VM 上的大量空間,尤其是因為沒有人記得清除它。

使用tee似乎是寫入文件的一個不錯的選擇,但它並不是我想要的方式。我希望label.txt它只增長到一定大小(比如 20 MB),此時它開始覆蓋自己。或者可能重命名label.txtlabel.txt.1,允許 label.txt 增長然後覆蓋label.txt.1

有沒有辦法用netcat/做到這一點tee?還是我應該看另一個程序?

回答您的問題,兩者都沒有netcattee實現此目的的功能。

也許您可以編寫一個 cron 作業,它每分鐘執行一次並檢查 . 的大小label.txt,當它達到 20MB 時,清除前 10MB。

有幾個步驟可以實現您想要的。

首先,您需要放入nc -k -l -p 9100 | tee labels.txt一個腳本,並添加一個處理程序SIGHUP以重新啟動命令。

接下來,您需要設置logrotate好,輪換日誌。

引用自:https://unix.stackexchange.com/questions/159123