Netcat
如何使用 netcat 寫入文件?並將其設置為增長到一定大小並開始覆蓋自己?
我目前正在編寫一個列印到 Zebra 列印機的程序。因為我的辦公室沒有斑馬列印機,所以我們列印到執行 netcat 的 linux VM 上,
nc -k -l -p 9100 | tee labels.txt
這樣我們就可以查看列印機的輸出並驗證正確性。不幸的是,這個文件變得非常大,佔用了 VM 上的大量空間,尤其是因為沒有人記得清除它。
使用
tee
似乎是寫入文件的一個不錯的選擇,但它並不是我想要的方式。我希望label.txt
它只增長到一定大小(比如 20 MB),此時它開始覆蓋自己。或者可能重命名label.txt
為label.txt.1
,允許 label.txt 增長然後覆蓋label.txt.1
。有沒有辦法用
netcat
/做到這一點tee
?還是我應該看另一個程序?
回答您的問題,兩者都沒有
netcat
或tee
實現此目的的功能。也許您可以編寫一個 cron 作業,它每分鐘執行一次並檢查 . 的大小
label.txt
,當它達到 20MB 時,清除前 10MB。
有幾個步驟可以實現您想要的。
首先,您需要放入
nc -k -l -p 9100 | tee labels.txt
一個腳本,並添加一個處理程序SIGHUP
以重新啟動命令。接下來,您需要設置
logrotate
好,輪換日誌。