tail 实时打印日志问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
GGGG430
V2EX    Linux

tail 实时打印日志问题

  •  
  •   GGGG430 2018-06-07 10:11:05 +08:00 5341 次点击
    这是一个创建于 2689 天前的主题,其中的信息可能已经有所发展或是发生改变。

    tail -f /path/to/logs/* |awk '/error/ && /warning/'
    tail -f 加上通配符可以看到 logs 目录下所有文件的变更, 但有个缺陷就是之后 logs 目录下新增的文件的打印不到的, 也就是只会监视在 tail 执行时该目录下的所有文件, 之后新增的文件的变更是看不到的, 请问各位大佬是如何解决的呢?

    21 条回复    2018-06-14 14:41:32 +08:00
    Firxiao
        1
    Firxiao  
       2018-06-07 10:25:56 +08:00
    GGGG430
        2
    GGGG430  
    OP
       2018-06-07 12:37:09 +08:00
    @Firxiao 因为是在线上服务器, 不便于新编译文件, 有其他原生命令组合能实现吗
    mattx
        3
    mattx  
       2018-06-07 12:42:19 +08:00
    是否能先用 inotifywait 来监听变动文件和新建文件,然后在 tail ?
    zvving
        4
    zvving  
       2018-06-07 12:42:51 +08:00 via Android
    太累,ELK 试试
    lululau
        5
    lululau  
       2018-06-07 12:43:53 +08:00
    原生的命令有啊,gcc,perl, python 都可以,确定就是需要一份代码作为输入,这个代码需要你来写

    如果连个工具都给装,是我的话,对不起,没有工具,这活儿老子干不了

    最后,人肉分析日志当然是 lnav
    shiznet
        6
    shiznet  
       2018-06-07 12:44:48 +08:00
    原始需求是什么?
    lululau
        7
    lululau  
       2018-06-07 12:45:24 +08:00
    一激动,错漏打几个字, “确定” -> “缺点”,“都给装” -> “都不给装”
    GGGG430
        8
    GGGG430  
    OP
       2018-06-07 15:52:14 +08:00
    @zvving ELK 只监视了部分 log, 且有时差
    @lululau 线上是集群机器, 非常多, 不可能每个都装的, 只能用最原始的方法
    @shiznet 就是实时监视所有已存在的以及未来新增的日志
    ceyes
        9
    ceyes  
       2018-06-07 17:18:31 +08:00
    janic716
        10
    janic716  
       2018-06-07 17:23:58 +08:00
    tail -F
    了解一下
    GGGG430
        11
    GGGG430  
    OP
       2018-06-07 17:30:14 +08:00 via iPhone
    @janic716 已了解,不行
    jennifertxwoodma
        12
    jennifertxwoodma  
       2018-06-07 17:48:53 +08:00   1
    tailf 了解一下
    GGGG430
        13
    GGGG430  
    OP
       2018-06-07 17:54:51 +08:00 via iPhone
    @jennifertxwoodma ...并不能
    GGGG430
        14
    GGGG430  
    OP
       2018-06-07 18:00:30 +08:00
    @ceyes
    tail -f ../../logs/* | grep --line-buffered '.*' | while read LINE0
    do
    echo "${LINE0}";
    done

    然后在 logs 目录下执行如 echo asdf>xx
    还是不行
    GGGG430
        15
    GGGG430  
    OP
       2018-06-07 18:02:32 +08:00
    比如我的日志名是以小时区分的(即每过一小时用新文件存日志), 这样我就得重新执行 tail, 有什么办法可以一直监视新文件吗
    cxbig
        16
    cxbig  
       2018-06-07 19:01:24 +08:00
    如果不同 log 文件的格式一致的话,ELK 还是很好用的。
    如果不是,那需要针对每一种不同,做特殊配置。
    janic716
        17
    janic716  
       2018-06-07 19:18:22 +08:00
    @GGGG430 常用的方法是, 日志永远往一个固定的文件名输入, 然后用定时任务到了时间点(小时或天) 自动做 rotate( 像 java 的 log4j 自带 rotate), 再结合 tail -F, 我用 flume 收集日志就是这么做的
    omph
        18
    omph  
       2018-06-08 00:45:19 +08:00
    楼上的办法挺好,把日志文件名固定住
    然后新建空日志文件,用 tail 打开监控
    服务器把日志写到这些同名文件里
    szetrov
        19
    szetrov  
       2018-06-08 08:12:10 +08:00 via Android
    呃,什么集群,一般难道不是管理节点编译安装一下然后直接 PBS 提交作业么。
    Kangvcar
        20
    Kangvcar  
       2018-06-08 08:50:46 +08:00
    tailf
    了解一下
    niaobulashi
        21
    niaobulashi  
       2018-06-14 14:41:32 +08:00
    tail -f 文件名
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6369 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 02:27 PVG 10:27 LAX 19:27 JFK 22:27
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86