仿我喜欢网站源码免费营销型网站建设便宜
2026/1/11 5:15:12 网站建设 项目流程
仿我喜欢网站源码免费,营销型网站建设便宜,电商到底是什么,c2c网站的盈利模式有哪些后端开发来说#xff0c;熟练掌握 Linux 的日志分析命令是基本功#xff0c;整理几一些基于 tail、less、grep、sed、awk 的日志查询场景#xff0c;希望能帮你快速定位问题。tail很多新手习惯用 cat#xff0c;但对于大文件#xff0c;cat 会导致屏幕刷屏#xff0c;还容…后端开发来说熟练掌握 Linux 的日志分析命令是基本功整理几一些基于tail、less、grep、sed、awk的日志查询场景希望能帮你快速定位问题。tail很多新手习惯用cat但对于大文件cat会导致屏幕刷屏还容易把终端卡死。tail才是实时监控的神器。真实场景 A服务发版启动监控每次发版重启服务时我们都需要确认 Spring Boot 是否启动成功或者有没有初始化报错。# -f (follow)实时追加显示文件尾部内容 tail -f logs/application.log真实场景 B配合测试复现 Bug测试同学说我现在点一下按钮你看看后台有没有报错。此时不需要看历史日志只需要盯着最新的输出。# 只看最后 200 行并保持实时刷新避免被历史日志干扰 tail -n 200 -f logs/application.logless如果需要查看之前的日志推荐使用less。不同于vim会一次性加载整个文件占用大量内存less是按需加载打开几个 G 的文件也极其流畅且支持向后回溯。真实场景追查某笔客诉订单运营反馈刚才 10 点左右订单号ORD12345678支付失败了。你需要从日志末尾开始往前反向查找这个订单号。less logs/application.log进入界面后的操作流Shift G先跳到日志最末尾因为报错通常发生在最近。?ORD12345678输入问号订单号向上反向搜索。n如果当前这行不是关键信息按n继续向上找上一次出现的位置。Shift F如果看着看着日志又更新了按这个组合键可以让 less 进入类似tail -f的实时滚动模式按Ctrl C退回浏览模式。grepgrep是最常用的搜索命令但在实际业务中简单的关键词搜索往往不够用。真实场景 A还原报错现场重点只看到NullPointerException这一行往往无法定位问题我们需要知道报错前的请求参数是什么报错后的堆栈信息是什么。此时必须配合-C(Context) 参数。# 搜索异常关键字并显示该行 前后各 20 行 grep -C 20 NullPointerException logs/application.log真实场景 B全链路追踪 TraceId微服务我们通常会通过TraceId串联请求。日志文件可能发生了滚动Rolling变成了app.log、app.log.1、app.log.2。我们需要在所有日志文件中搜索同一个 TraceId。# 搜索当前目录下所有以 app.log 开头的文件 grep TraceId-20251219001 logs/app.log*真实场景 C统计异常频次老板问“Redis 超时异常今天到底发生了多少次是偶发还是大规模”不需要数数直接统计行数。# -c (count)只统计匹配的行数 grep -c RedisConnectionException logs/application.log真实场景 D排除干扰噪音排查问题时日志里充斥着大量无关的INFO心跳日志或健康检查日志严重干扰视线。# -v (invert)显示不包含 HealthCheck 的所有行 grep -v HealthCheck logs/application.logsed有时候日志非常大例如有 10GBgrep 搜出来的内容依然过多。如果我们明确知道生产事故发生在14:00 到 14:05之间该怎么办下载整个日志不现实sed可以帮我们把这段时间的日志单独切出来保存成一个小文件慢慢分析。真实场景导出事故时间窗口的日志# 语法sed -n /开始时间/,/结束时间/p 源文件 目标文件 # 注意时间格式必须和日志里的格式完全一致 sed -n /2025-12-19 14:00/,/2025-12-19 14:05/p logs/application.log error_segment.log这样你就得到了一个只有几 MB 的error_segment.log这时候再下载到本地分析或者发给同事都非常方便。Awkawk擅长处理列数据对于格式规范的日志如 Nginx 访问日志、Apache 日志它可以直接在服务器上生成简报。真实场景 A遭到攻击查找恶意 IP服务突然报警 CPU 飙升怀疑遭到 CC 攻击或爬虫抓取我们需要分析 Nginx 日志找出访问量最高的 IP。假设日志格式第一列是 IP# 1. awk {print $1}提取第一列IP # 2. sort排序把相同的 IP 排在一起 # 3. uniq -c去重并统计每个 IP 出现的次数 # 4. sort -nr按次数(n)倒序(r)排列 # 5. head -n 10取前 10 名 awk {print $1} access.log | sort | uniq -c | sort -nr | head -n 10真实场景 B找出响应最慢的接口Nginx 日志中通常记录了响应时间假设在最后一列我们想把响应时间超过 1 秒的请求找出来。# $NF 代表最后一列 # 打印所有响应时间大于 1 秒的 URL假设 URL 在第 7 列 awk $NF 1.000 {print $7, $NF} access.log总结举的例子都是我常用的建议把这几个命令刻在脑子里或者收藏本文下次遇到生产问题对着场景直接复制粘贴就ok了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询