Linux查看日志文件的一些命令


前言

在公司实习测试期间,需要登录堡垒机查看系统日志,现在梳理一些我平时常用的查看的日志的命令。


一、实时查看日志

1.tail -f /var/log/app.log

该命令会输出app.log文件的最后10行,并实时监控文件的变化,新写入的行会持续显示出来。按Ctrl+C可以退出。

示例:

$ tail -f /var/log/app.log
2023-03-27 10:12:34 INFO Started application
2023-03-27 10:12:36 ERROR Failed to connect to database
2023-03-27 10:12:40 WARNING Low memory available
... 
(从这里开始新增的日志会持续显示)

2.tail -n 200 -f /var/log/app.log

与上一命令类似,但指定输出最后200行,然后持续监控文件变化。

3.tailf /var/log/app.log (需先安装tailf工具)

该工具比tail更强大,可以高亮显示新增的日志行,方便区分。


二、关键字搜索

1. grep 'keyword' /var/log/app.log

在app.log文件中搜索包含"keyword"的所有行

示例:

$ grep 'ERROR' /var/log/app.log
2023-03-27 10:12:36 ERROR Failed to connect to database
2023-03-27 14:23:15 ERROR Timeout when calling remote service

2. grep -i 'KEYWORD' /var/log/*.log

搜索多个日志文件,并忽略大小写匹配"KEYWORD"

3. grep -C 5 'keyword' /var/log/app.log

搜索关键字,并显示匹配行的上下5行,以显示更多上下文。

4. awk '/keyword/ {print $0}' /var/log/app.log

使用awk工具打印包含"keyword"的完整行。


三、上下文查看

1. vi +/keyword /var/log/app.log

使用vi编辑器打开app.log文件,并直接跳转到第一个匹配"keyword"的位置。在vi中,你可以使用n/N键跳转到下一个/上一个匹配处。
1、进入vim编辑模式:vi app.log
2、输入“/关键字”,按enter键查找
3、查找下一个,按“n”即可( n 查找上一处错误日志 N 查找下一处错误日志)
4 、
ctrl+f: 下翻一屏。
ctrl+b: 上翻一屏。
ctrl+d: 下翻半屏。
ctrl+u: 上翻半屏。
ctrl+e: 向下滚动一行。
ctrl+y: 向上滚动一行。
5、ctrl+o回到搜索的地方
退出:按ESC键后,接着再输入:号时,vi会在屏幕的最下方等待我们输入命令
wq! 保存退出;
q! 不保存退出;
其他情况:
/关键字 注:正向查找,按n键把光标移动到下一个符合条件的地方
?关键字 注:反向查找,按shift+n 键,把光标移动到下一个符合条件的

2. less +F /var/log/app.log

使用less命令打开app.log,按/键输入待搜索的关键字,按n/N键上下切换匹配处。
less支持翻页和搜索等多种操作。

3. cat -n /var/log/app.log | grep 'keyword'

先用cat -n给app.log每一行加上行号,然后再使用grep搜索,这样输出就带有行号,方便定位。


四、时间段筛选

1. sed -n '/2023-03-27 10:00/,/2023-03-27 12:00/p' /var/log/app.log

使用sed命令从app.log中只打印时间范围在2023-03-27 10:00到12:00之间的日志行。

2. awk '/2023-03-27 10:/ && /2023-03-27 12:00/' /var/log/app.log

使用awk,通过两个模式匹配的与操作,实现同样的时间段筛选。


五、多文件监控

1. multitail -i /var/log/app.log /var/log/nginx/error.log

同时实时监控多个文件,使用-i选项可以不区分大小写进行关键字高亮。

2. lnav /var/log/

lnav是一个高级日志文件查看器,打开整个/var/log目录,可通过各种过滤条件查看不同文件。


六、格式化和统计

1. awk '{print $3}' /var/log/app.log | sort | uniq -c

首先使用awk提取日志行的第三个字段(假设是错误码),然后sort排序,再通过uniq -c统计每个错误码出现的次数。

示例:

$ awk '{print $3}' /var/log/app.log | sort | uniq -c
   25 ERR_TIMEOUT  
   15 ERR_NOT_FOUND
   62 ERR_SERVER_ERROR
    8 ERR_PERM_DENIED

2. sed 's/^[0-9]*//' /var/log/app.log

使用sed对app.log的每一行执行替换,去掉行首的时间戳信息。可用于只查看日志消息本身的内容。


总结

一般就用tail、cat、grep、vim就能满足大部分需求了。

  • 31
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我知道了。回答你的问题: Linux系统中,我们经常需要查看日志文件以便于排查问题。以下是一些常用的Linux查看日志文件命令: 1. tail 命令 tail 命令可以用来查看文件的末尾内容,非常适合查看实时日志。常见的使用方式是: ``` tail -f /var/log/messages ``` 这个命令实时输出 /var/log/messages 文件的末尾内容。 2. head 命令 head 命令可以用来查看文件的头部内容。常见的使用方式是: ``` head -n 10 /var/log/messages ``` 这个命令会输出 /var/log/messages 文件的前 10 行内容。 3. less 命令 less 命令可以用来分页查看文件内容,非常适合大文件查看。常见的使用方式是: ``` less /var/log/messages ``` 这个命令会打开 /var/log/messages 文件,并允许你使用上下箭头来翻页。 4. grep 命令 grep 命令可以用来查找匹配的内容。常见的使用方式是: ``` grep "error" /var/log/messages ``` 这个命令会输出 /var/log/messages 文件中包含 "error" 字符串的行。 5. find 命令 find 命令可以用来查找指定目录下的文件。常见的使用方式是: ``` find /var/log -name "*.log" ``` 这个命令会在 /var/log 目录下查找所有以 .log 结尾的文件。 6. wc 命令 wc 命令可以用来统计文件的行数、字数和字符数。常见的使用方式是: ``` wc -l /var/log/messages ``` 这个命令会输出 /var/log/messages 文件的行数。 希望这些命令对你有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值