V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Devin
V2EX  ›  Linux

如何使新的 log 输出放在前面?

  •  
  •   Devin · 2015-12-15 18:31:23 +08:00 via iPhone · 2915 次点击
    这是一个创建于 3298 天前的主题,其中的信息可能已经有所发展或是发生改变。
    假设多次成功运行 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 的输出进行处理
    13 条回复    2015-12-24 13:04:52 +08:00
    terrancy
        1
    terrancy  
       2015-12-15 19:58:39 +08:00   ❤️ 1
    文件指针在最后面就是第一种,文件指针在最前面就是第二种.
    raysonx
        2
    raysonx  
       2015-12-15 20:01:47 +08:00 via Android   ❤️ 1
    往前插入非常影響效率,每次寫入都要重建文件。這是文件系統決定的。
    建議還是用追加方式輸出日誌,然後用 tac 讀取
    gamexg
        3
    gamexg  
       2015-12-15 20:06:41 +08:00 via Android
    @terrancy 修改文件指针会覆盖老内容。我记得文件系统只能在后面追加,无法在前面插入内容啊。
    knightdf
        4
    knightdf  
       2015-12-15 20:18:57 +08:00   ❤️ 1
    把 abc.log 换成你自己写的一个 FIFO 队列。。。
    jarlyyn
        5
    jarlyyn  
       2015-12-15 20:26:05 +08:00
    为啥不是对显示 log 的方式进行处理呢……

    tac+1
    Devin
        6
    Devin  
    OP
       2015-12-15 20:31:11 +08:00 via iPhone
    @jarlyyn 有些场景,比如说把服务器的 log 文件下载到客户端查看,但客户端是 win 不支持 tac 命令。。。不过权衡下还是用追加的好了
    jarlyyn
        7
    jarlyyn  
       2015-12-15 20:33:32 +08:00   ❤️ 1
    test.sh | tac >> abc.log
    Devin
        8
    Devin  
    OP
       2015-12-15 20:34:48 +08:00 via iPhone
    @knightdf 这样的话输入到数据库再排序可能更简捷
    Devin
        9
    Devin  
    OP
       2015-12-15 20:38:52 +08:00 via iPhone
    @jarlyyn 不对,单次执行的输出是这样的
    1 OK!
    这里 tac 没意义😂
    jarlyyn
        10
    jarlyyn  
       2015-12-15 20:40:33 +08:00
    还有就是为了做日志的话,完全可以

    tar abc.log |gzip> abcrev.log.gz

    数据生成的时候没必要去做这些特殊操作吧?
    Devin
        11
    Devin  
    OP
       2015-12-15 20:47:41 +08:00 via iPhone
    @jarlyyn 一开始 Google 没搜到答案,觉得奇怪难道没人这么用?看了 2 楼才知道
    matrix67
        12
    matrix67  
       2015-12-15 21:13:00 +08:00
    我就知道有人会说这个是 X-y problem[1]。

    [1].http://xyproblem.info/


    颇有 hack news 风范。
    songco
        13
    songco  
       2015-12-24 13:04:52 +08:00
    目前的文件系统不支持这么玩...所以效率是个问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2956 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:12 · PVG 22:12 · LAX 06:12 · JFK 09:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.