技术解析

如何使新的 log 输出放在前面?
0
2021-07-06 08:29:14
idczone
假设多次成功运行 test.sh >> abc.log 输出 log 如下:
1 OK!
2 OK!
3 OK!
4 OK!
5 OK!

在不修改 test.sh 的前提下,如何使新的 log 输出放在前面,变成如下形式:
5 OK!
4 OK!
3 OK!
2 OK!
1 OK!

PS: 不是要对 abc.log 进行二次处理,是对 test.sh 的输出进行处理
文件指针在最后面就是第一种,文件指针在最前面就是第二种.

往前插入非常影響效率,每次寫入都要重建文件。這是文件系統決定的。
建議還是用追加方式輸出日誌,然後用 tac 讀取

修改文件指针会覆盖老内容。我记得文件系统只能在后面追加,无法在前面插入内容啊。

把 abc.log 换成你自己写的一个 FIFO 队列。。。

为啥不是对显示 log 的方式进行处理呢……
tac+1

有些场景,比如说把服务器的 log 文件下载到客户端查看,但客户端是 win 不支持 tac 命令。。。不过权衡下还是用追加的好了

test.sh | tac >> abc.log

这样的话输入到数据库再排序可能更简捷

不对,单次执行的输出是这样的
1 OK!
这里 tac 没意义
数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服