当前位置: 首页> 科技> 数码 > 网站建设哪家最好用_陕西疫情最新情况最新消息今天_网络营销是做什么_百度有效点击软件

网站建设哪家最好用_陕西疫情最新情况最新消息今天_网络营销是做什么_百度有效点击软件

时间:2025/8/26 17:51:19来源:https://blog.csdn.net/wange6906/article/details/147260427 浏览次数:0次
网站建设哪家最好用_陕西疫情最新情况最新消息今天_网络营销是做什么_百度有效点击软件

在 Linux 中,根据关键字搜索日志内容是运维和开发的常见需求。以下是常用的命令及场景示例:


1. grep 基础搜索

(1) 简单关键字匹配
# 在文件中搜索包含 "error" 的行
grep "error" /var/log/nginx/error.log# 忽略大小写(-i)
grep -i "warning" /var/log/syslog# 显示匹配行的行号(-n)
grep -n "timeout" app.log
(2) 多关键字搜索
# 同时匹配 "error" 或 "critical"(-E 启用正则)
grep -E "error|critical" /var/log/app.log# 匹配同时包含 "user123" 和 "login" 的行(需顺序出现)
grep "user123.*login" auth.log

2. 上下文显示

# 显示匹配行及其后5行(-A)
grep -A 5 "panic" system.log# 显示匹配行及其前3行(-B)
grep -B 3 "connection refused" network.log# 显示匹配行前后各2行(-C)
grep -C 2 "oom killer" kern.log

3. 递归搜索目录

# 在 /var/log 目录下所有文件中搜索 "segmentation fault"
grep -r "segmentation fault" /var/log# 仅显示文件名和匹配内容(-H)
grep -rH "404" /var/log/nginx/

4. 反向匹配(排除关键字)

# 排除包含 "debug" 的行
grep -v "debug" app.log# 排除空行和注释行(多个条件)
grep -v -E "^$|^#" config.conf

5. 结合 find 搜索多个文件

# 查找所有 .log 文件并搜索 "out of memory"
find /var/log -name "*.log" -exec grep "out of memory" {} +# 最近7天修改过的日志中搜索
find /opt/app/logs -name "*.log" -mtime -7 -exec grep "timeout" {} \;

6. 实时监控日志(tail + grep

# 实时追踪日志并过滤关键字
tail -f /var/log/nginx/access.log | grep "POST /login"# 高亮显示匹配内容(需要 `grep --color`)
tail -f app.log | grep --color -E "error|warning"

7. 使用 awk 高级过滤

# 提取日志中特定列(如第4列状态码为500的行)
awk '$9 == 500 {print}' /var/log/nginx/access.log# 结合时间范围过滤(假设时间在第4列)
awk '/2023-10-25 14:/, /2023-10-25 15:/' /var/log/app.log

8. 使用 sed 处理日志

# 提取两个关键字之间的内容
sed -n '/START/,/END/p' transaction.log# 替换日志中的敏感信息
sed 's/密码:.*/密码:******/g' auth.log

9. 压缩日志搜索

# 直接搜索 .gz 压缩文件
zgrep "502 Bad Gateway" /var/log/nginx/access.log.1.gz# 搜索多个压缩文件
zcat /var/log/nginx/*.gz | grep "404"

10. 统计匹配结果

# 统计匹配行数(-c)
grep -c "GET /api" access.log# 统计每个匹配关键字的出现次数
grep -o "exception type:[A-Za-z]*" app.log | sort | uniq -c

11. 高亮显示(需终端支持)

# 使用 `grep` 自带高亮
grep --color=auto "ERROR" app.log# 使用 `ack` 工具(更友好的高亮)
ack "WARNING" /var/log/*.log

12. 组合管道操作

# 复杂示例:搜索错误,排除测试用户,统计前10
grep "ERROR" app.log | grep -v "testuser" | cut -d' ' -f4- | sort | uniq -c | sort -nr | head -10

总结表格

场景命令示例
简单关键字搜索grep "error" file.log
实时监控日志tail -f logfile | grep "keyword"
多文件递归搜索grep -r "panic" /var/log
排除干扰项grep -v "debug" app.log
压缩文件搜索zgrep "404" access.log.gz
统计错误类型grep -o "Error:\w*" app.log | sort | uniq -c
时间段过滤sed -n '/2023-10-25 14:00:/,/2023-10-25 15:00:/p' system.log

注意事项

  1. 权限问题:日志文件通常需要 sudo 权限

  2. 性能优化:大文件搜索时尽量缩小范围(如先用 find 按时间过滤)

  3. 正则表达式:复杂匹配建议使用 -E 启用扩展正则

  4. 日志轮转:注意搜索范围是否包含历史日志(如 *.log*.gz

关键字:网站建设哪家最好用_陕西疫情最新情况最新消息今天_网络营销是做什么_百度有效点击软件

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: