linux生产环境下根据关键字搜索指定日志文件命令

grep -C 100 "error" server.log 用于在 server.log 文件中查找包含 “error” 的行,并同时显示该行前后100行的上下文。这是排查日志问题的常用技巧,解释一下:

命令参数详解

  • grep:文本搜索工具,用于在文件中查找匹配模式的行。
  • -C 100-C--context 的缩写,表示显示匹配行前后各100行。
    • 若只需前100行,用 -B 100--before-context)。
    • 若只需后100行,用 -A 100--after-context)。
  • "error":搜索模式,支持正则表达式(如 "ERROR|Failed" 可同时匹配 “ERROR” 和 “Failed”)。
  • server.log:目标日志文件。

使用场景示例

假设 server.log 包含以下内容:

[2023-01-01 10:00:00] INFO: Starting server...
[2023-01-01 10:00:01] INFO: Loading configuration...
[2023-01-01 10:00:02] ERROR: Database connection failed
[2023-01-01 10:00:03] INFO: Trying to reconnect...
[2023-01-01 10:00:04] INFO: Server started successfully

执行 grep -C 2 "ERROR" 后,输出会包含匹配行及其前后2行:

[2023-01-01 10:00:00] INFO: Starting server...
[2023-01-01 10:00:01] INFO: Loading configuration...
[2023-01-01 10:00:02] ERROR: Database connection failed
[2023-01-01 10:00:03] INFO: Trying to reconnect...
[2023-01-01 10:00:04] INFO: Server started successfully

注意事项 大小写敏感

  • 默认 grep 区分大小写,若要忽略大小写,用 -i 参数(如 grep -iC 100 "error")。

你可能感兴趣的:(linux,服务器,运维)