linux如何用关键字搜索日志

在 Linux 系统中搜索日志是日常运维的重要工作,以下是几种常用的关键字搜索日志方法:

1. 基础 grep 搜索

bash

复制

# 基本搜索(区分大小写)
grep "keyword" /var/log/syslog

# 忽略大小写搜索
grep -i "error" /var/log/syslog

# 显示匹配行及前后5行内容
grep -A 5 -B 5 "error" /var/log/syslog
# 或简写为(显示前后各5行)
grep -C 5 "error" /var/log/syslog

# 显示匹配行的行号
grep -n "error" /var/log/syslog

2. 高级 grep 用法

bash

复制

# 正则表达式搜索
grep -E "error|fail|critical" /var/log/syslog

# 反向搜索(显示不包含关键字的行)
grep -v "success" /var/log/syslog

# 统计匹配次数
grep -c "error" /var/log/syslog

# 只显示匹配的部分(而非整行)
grep -o "error=[0-9]*" /var/log/syslog

3. 实时日志监控

bash

复制

# 实时跟踪日志并过滤
tail -f /var/log/nginx/access.log | grep "404"

# 多文件实时监控(需要安装multitail)
multitail -e "error" /var/log/syslog /var/log/nginx/error.log

4. 搜索压缩日志

bash

复制

# 搜索.gz压缩文件
zgrep "error" /var/log/syslog.2.gz

# 搜索多个压缩文件
zcat /var/log/syslog.*.gz | grep "error"

5. 使用 journalctl(systemd系统)

bash

复制

# 基本搜索
journalctl -x | grep "error"

# 按时间过滤
journalctl --since "2023-10-01" --until "2023-10-02" | grep "error"

# 按服务/单元过滤
journalctl -u nginx.service | grep "error"

# 实时监控
journalctl -f | grep "error"

6. 组合命令高级搜索

bash

复制

# 搜索多个关键字(OR条件)
grep -e "error" -e "fail" /var/log/syslog

# 同时满足多个条件(AND条件)
grep "error" /var/log/syslog | grep "connection"

# 搜索后排序并统计
grep "error" /var/log/syslog | cut -d' ' -f5 | sort | uniq -c | sort -nr

# 查找最近修改的日志文件并搜索
find /var/log -type f -mtime -1 -exec grep -i "error" {} +

7. 常用日志文件路径

日志文件用途
/var/log/syslog通用系统日志
/var/log/messages系统消息(RHEL/CentOS)
/var/log/auth.log认证相关日志
/var/log/kern.log内核日志
/var/log/dmesg启动消息
/var/log/nginx/Nginx日志目录
/var/log/apache2/Apache日志目录
/var/log/mysql/MySQL日志目录

小技巧

  1. 使用 less 查看日志时可以按 / 然后输入关键字进行搜索

  2. 对于大文件,先用 head 或 tail 查看部分内容再搜索

  3. 使用 alias 创建常用搜索的快捷方式

  4. 考虑使用 logwatch 或 goaccess 等工具进行更专业的日志分析

根据你的具体需求选择合适的搜索方法,组合使用这些命令可以大大提高日志分析的效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lifewange

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值