我有一个在 OpenWRT 路由器上运行的小程序,它记录到远程 MySQL 数据库。如果数据库变得不可用,程序会写入缓冲区文件 (/var/buffer) 以防止数据丢失。问题是,由于它存储在路由器本身上,如果数据库停机时间过长,很有可能很快就会用完空间。
我想如果我将文件保持在最多 20,000 行,在写入新的时丢弃最旧的(一旦达到最大大小),我可以最大限度地减少数据丢失,而不必担心存储空间不足空间(有点损失不是世界末日,我宁愿保留最新的东西而不是最旧的东西)。
根据我的研究,我了解到如果不重写整个文件(不好,太耗时)就无法删除文件的第一行,并且每次我认为我接近另一个解决方案时它都会崩溃。
有没有更好的办法?还是每次我有一个新行来添加我唯一的选项时都重新编写 20k 行文件?