linux实时查看更新日志命令

2018年3月30日15:08:06
  • A+
所属分类:Linux

很多时候在调试生成或正式平台服务器的时候想查看实时的日志输出,在Linux中可以使用tail 或 watch来实现。

比如我们项目中有个 app.log 的日志文件,我们普通读取都使用 vi app.log。但是要实时查看更新就得使用其他命令了。

  • tail的使用
tail -f app.log
  1. 命令格式;
    tail[必要参数][选择参数][文件]2. 命令功能:
    用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
  2. 命令参数:
    -f 循环读取
    -q 不显示处理信息
    -v 显示详细的处理信息
    -c<数目> 显示的字节数
    -n<行数> 显示行数
    –pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
    -q, –quiet, –silent 从不输出给出文件名的首部
    -s, –sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
  • watch
watch -d -n 1 cat app.log
  1. 命令格式:
    watch[参数][命令]
  2. 命令功能:
    可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令
  3. 命令参数:
    -n或–interval watch缺省每2秒运行一下程序,可以用-n或-interval来指定间隔的时间。
    -d或–differences 用-d或–differences 选项watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。
    -t 或-no-title 会关闭watch命令在顶部的时间间隔,命令,当前时间的输出。
    -h, –help 查看帮助文档

一般第一种就够用了

 

 

  1. 先必须了解两个最基本的命令:

    tail  -n  10  test.log   查询日志尾部最后10行的日志;

    tail -n +10 test.log    查询10行之后的所有日志;

    head -n 10  test.log   查询日志文件中的头10行日志;

    head -n -10  test.log   查询日志文件除了最后10行的其他所有日志;

    linux实时查看更新日志命令
  2. 场景1: 按行号查看---过滤出关键字附近的日志

    因为通常时候我们用grep拿到的日志很少,我们需要查看附近的日志.

    我是这样做的,首先: cat -n test.log |grep "地形"  得到关键日志的行号

    linux实时查看更新日志命令
  3. <3>得到"地形"关键字所在的行号是102行. 此时如果我想查看这个关键字前10行和后10行的日志:

    cat -n test.log |tail -n +92|head -n 20

    tail -n +92表示查询92行之后的日志

    head -n 20 则表示在前面的查询结果里再查前20条记录

    linux实时查看更新日志命令
  4. 场景2:那么按日期怎么查呢?  通常我们非常需要查找指定时间端的日志

    sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log

    特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效.

    linux实时查看更新日志命令
  5. 关于日期打印,可以先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该时间点,以确保第4步可以拿到日志

    这个根据时间段查询日志是非常有用的命令.

  6. 如果我们查找的日志很多,打印在屏幕上不方便查看, 有两个方法:

    (1)使用more和less命令, 如: cat -n test.log |grep "地形" |more     这样就分页打印了,通过点击空格键翻页

    (2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析.如:

    cat -n test.log |grep "地形"  >xxx.txt

    linux实时查看更新日志命令
  7. 7

    这几个日志查看方法应该可以满足日常需求了

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: