首页 热点资讯 义务教育 高等教育 出国留学 考研考公

linux读取正在写入的大文件中最后特定行

发布网友 发布时间:2022-04-27 02:59

我来回答

1个回答

热心网友 时间:2022-06-25 04:11

运行时间你自己用下面的命令试试就知道了,估计是估计不出来的。Linux重在实践。

time tail -1500000 file.txt

看最后出来的real的时间。

追问这个时间已经写了不止2000000条了只怕。

追答cp file.txt tmpfile
tail -1500000 tmpfile
rm -f tmpfile

先看看cp需要多长时间,如果很快就可以像上面这样。


你要读文件效率高些的话,就不要将一个文件搞成这么大。

判断文件大小,超过一个设定值(比如50M)后就另写一个文件。

  

另外,如果只需要保存一定量一定时间的log,而不一定保存所有log,可以考虑借鉴嵌入式Linux系统中syslogd那样的log rotation方式。log.txt -> log.txt.0 -> log.txt.1 -> log.txt.2,设置单个log文件的大小,写满后写下一个,log.txt.2写满后,覆盖写log.txt,依次循环,始终保持4个文件。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com