我有一個在OpenWRT路由器上運行的小程序,它記錄到遠程MySQL數據庫。如果數據庫變得不可用,程序將寫入緩衝區文件(/ var/buffer)以防止數據丟失。事情是,因爲它存儲在路由器本身,所以如果數據庫停機時間過長,就有可能很快地耗盡空間。限制日誌/緩衝區文件中的行數
我覺得如果我把文件保存到最多20,000行,丟棄最舊的文件(當達到最大文件大小後),我可以最大限度地減少數據丟失,不必擔心用完存儲空間(有點損失不是世界的盡頭,我寧願保留最新的東西,而不是最古老的東西)。
從我的研究中我明白,如果不重寫整個文件(不好,太耗時),文件的第一行不能被刪除,並且每次我認爲我接近另一個解決方案時,它就會崩潰。
有沒有更好的方法?或者每次有新行添加唯一選項時,重新寫入20k行文件?
這是我考慮的方法之一。不幸的是,我的程序有機會停止並重新啓動,所以'log_LastLineNo'會丟失。我想我可以把它保存到一個單獨的文件中... –