Linux日志处理命令多管道实战应用

全文目录

    • 1 日志处理
      • 1.1 实时日志分析
        • 1.1.1 nginx日志配置
        • 1.1.2 nginx日志示例
        • 1.1.3 日志分析示例
      • 1.2 多文件合并分析
      • 1.3 时间范围日志提取
    • 2 问题追查
      • 2.1 进程级问题定位
      • 2.2 网络连接排查
      • 2.3 硬件故障追踪
    • 3 数据统计
      • 3.1 磁盘空间预警
      • 3.2 进程资源消耗排名
      • 3.3 HTTP状态码统计
    • 4 高级组合技巧
      • 4.1 TCP连接状态分析
      • 4.2 日志时间戳转换
      • 4.3 多条件文件清理
    • 5 参考文献


写在前面

前面的博文详细梳理了《Linux日志处理命令完全解构 》和《从零开始掌握Linux数据流:管道与重定向完全指南》,从各个单一命令的原理介绍再到数据流如何在命令之间进行输入和输出,今天终于可以把前面的内容进行综合应用,来完成本篇关于日志处理实战应用的整理。
本文重点介绍几种实战中常用的利用管道来整合多命令达成预期处理效果的实战应用,希望能够给读者带来帮助。


1 日志处理

1.1 实时日志分析

1.1.1 nginx日志配置
http {log_format main '$remote_addr - $remote_user [$time_local] ''"$request" $status $body_bytes_sent ''"$http_referer" "$$http_user_agent" ''"$http_x_forwarded_for"';access_log /var/log/nginx/access.log main;
}
1.1.2 nginx日志示例
192.168.1.100 - - [27/Apr/2025:15:30:45 +0800] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" "-"
192.168.1.100 - - [27/Apr/2025:15:30:45 +0800] "GET /index1.html HTTP/1.1" 500 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" "-"
192.168.1.100 - - [27/Apr/2025:15:30:45 +0800] "GET /index2.html HTTP/1.1" 500 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" "-"
192.168.1.100 - - [27/Apr/2025:15:30:45 +0800] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" "-"
192.168.1.100 - - [27/Apr/2025:15:30:45 +0800] "GET /index.html HTTP/1.1" 400 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" "-"
192.168.1.100 - - [27/Apr/2025:15:30:45 +0800] "GET /index2.html HTTP/1.1" 502 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" "-"
192.168.1.100 - - [27/Apr/2025:15:30:45 +0800] "GET /index1.html HTTP/1.1" 504 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" "-"
1.1.3 日志分析示例
  • 动态跟踪Nginx日志,统计500错误的请求路径出现次数
tail -f access.log | grep ' 500 ' | awk '{print $7}' | sort | uniq -c
  • 统计近1000条日志,输出请求路径访问次数最多的三个
tail -n 1000 access.log | awk '{print $7}' | sort -nr | uniq -c | head ‐3
  • 统计某一时刻,504 错误访问的URL及远程id
grep "2025:15:30" access.log | awk -F' ' '$9==504 {print $1,$7}'| sort | uniq -c | sort -nr

1.2 多文件合并分析

  • 合并多个日志文件,统计非本机IP的访问量TOP20
cat access.log* | grep -v '127.0.0.1' | awk '{print $1}' | sort | uniq -c | sort -nr | head -20

1.3 时间范围日志提取

  • 提取MySQL服务在指定时间段内的死锁日志(显示上下文3行)
journalctl --since "2025-04-25 09:00" --until "2025-04-25 12:00" -u mysql | grep -C3 'deadlock'

2 问题追查

2.1 进程级问题定位

  • 通过进程名定位PID,查询相关进程打开的文件描述符(处理过程:过滤进程→提取PID→查看文件句柄)
ps aux | grep nginx | awk '{print $2}' | xargs -I{} lsof -p {}

2.2 网络连接排查

  • 筛选80端口监听状态,格式化输出结果(处理过程:过滤监听状态→匹配端口→表格排版)
netstat -tulnp | awk '$6=="LISTEN" && $4~":80$"' | column -t
  • 统计网络连接情况
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' # TCP连接统计返回结果示例:
LAST_ACK 7
SYN_RECV 33
ESTABLISHED 159
FIN_WAIT1 51
FIN_WAIT2 90
TIME_WAIT 107解释说明:
SYN_RECV:表示正在等待处理的请求数
ESTABLISHED:表示正常数据传输状态
TIME_WAIT:表示处理完毕,等待超时结束的请求数

2.3 硬件故障追踪

  • 分析内核日志中错误信息,按设备名统计异常次数(处理过程:过滤错误→提取设备标识→统计频次)
dmesg -T | grep -i error | awk -F'[: ]' '{print $1,$3}' | sort | uniq -c

3 数据统计

3.1 磁盘空间预警

  • 检测磁盘使用超80%的分区,邮件通知管理员
df -h | awk '+$5 > 80 {print $6,$5}' | column -t | mail -s "Disk Alert" zhangsan@example.com

在这里插入图片描述

3.2 进程资源消耗排名

  • 显示当前运行的进程信息,包括进程ID、父进程ID、命令名称、内存使用百分比和CPU使用百分比,并按内存使用百分比降序排列,显示前10条结果
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -n 10 | awk 'NR>1 {print $1,$4}'

在这里插入图片描述

3.3 HTTP状态码统计

  • 统计日志中不同HTTP状态码出现次数(处理过程:提取状态码→排序计数→格式化输出)
awk '{print $9}' access.log | sort | uniq -c | awk '{printf "状态码%s: %d次\n",$2,$1}'

4 高级组合技巧

4.1 TCP连接状态分析

  • 统计已建立连接的远程端口分布
ss -tunap | awk '{print $1,$5}' | grep 'ESTAB' | awk -F':' '{print $2}' | sort | uniq -c|sort -nr

在这里插入图片描述

4.2 日志时间戳转换

  • 将日志中的时间转换为Unix时间戳便于分析
grep 'ERROR' app.log | awk '{print $1,$2}' | xargs -I{} date -d "{}" +%s

4.3 多条件文件清理

  • 删除30天前且大于100MB的日志文件
find /logs -name "*.log" -mtime +30 -exec du -sh {} + | awk '$1 > 100M {print $2}' | xargs rm -vf

5 参考文献

文献1|文献2|文献3


写在最后

以上有限的例举了一些常用的组合式方法和命令来解决一些实际工作中的问题,这里仅是抛砖引玉,给读者一个认知上的拓展,并不能梳理的特别全面,根据遇到的实际情况,需要做灵活调整,已达成预期的效果。如果对你有帮助,欢迎点赞和收藏,如有任何问题,也欢迎评论指正,一起加油!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/903173.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

0803分页_加载更多-网络ajax请求2-react-仿低代码平台项目

文章目录 1 分页1.1 url与分页参数1.2 分页组件与url1.3 列表页引用分页组件 2 加载更多2.1 状态2.2 触发时机2.3 加载数据2.4优化 结语 1 分页 1.1 url与分页参数 查询问卷列表接口,添加分页参数: page:当前页码(第几页&#…

【技术追踪】基于扩散模型的脑图像反事实生成与异常检测(TMI-2024)

一种新颖的扩散模型双重采样策略,DDPM DDIM ~ 论文:Diffusion Models for Counterfactual Generation and Anomaly Detection in Brain Images 0、摘要 病理区域的分割掩模在许多医学应用中很有用,例如脑肿瘤和中风管理。此外,疾…

第十六届蓝桥杯大赛软件赛省赛第二场 C/C++ 大学 A 组

比赛还没有开始,竟然忘记写using namespace std; //debug半天没看明白 (平时cv多了 然后就是忘记那个编译参数,(好惨的开局 编译参数-stdc11 以下都是赛时所写代码,赛时无聊时把思路都打上去了(除了倒数第二题&#…

CentOS 7上Memcached的安装、配置及高可用架构搭建

Memcached是一款高性能的分布式内存缓存系统,常用于加速动态Web应用的响应。本文将在CentOS 7上详细介绍Memcached的安装、配置,以及如何实现Memcached的高可用架构。 (1)、搭建memcached 主主复制架构 Memcached 的复制功能支持…

告别进度失控:用燃尽图补上甘特图的监控盲区

在职场中,项目经理最头疼的莫过于“计划赶不上变化”。明明用甘特图排好了时间表,任务却总像脱缰野马——要么进度滞后,要么资源分配失衡。甘特图虽能直观展示任务时间轴,但面对突发风险或团队效率波动时,它更像一张“…

爬虫-oiwiki

我们将BASE_URL 设置为 "https://oi-wiki.org/" 后脚本就会自动开始抓取该url及其子页面的所有内容,并将统一子页面的放在一个文件夹中 import requests from bs4 import BeautifulSoup from urllib.parse import urljoin, urlparse import os import pd…

业务中台与数据中台:企业数字化转型的核心引擎

前言:在当今数字化浪潮下,企业为了提升运营效率、加速创新步伐并更好地适应市场变化,业务中台与数据中台应运而生,成为企业架构中的关键组成部分。本文将深入探讨业务中台和数据中台的简介、发展史、技术流环节以及在实际生产中的…

django admin 去掉新增 删除

在Django Admin中,你可以通过自定义Admin类来自定义哪些按钮显示,哪些不显示。如果你想隐藏“新增”和“删除”按钮,可以通过重写change_list_template或使用ModelAdmin的has_add_permission和has_delete_permission属性来实现。 方法1&…

基于云原生架构的后端微服务治理实战指南

一、引言:为什么在云原生时代更需要微服务治理? 在单体应用时代,开发和部署虽然简单,但随着系统规模的扩大,单体架构的维护成本急剧上升,部署频率受限,模块之间相互影响,最终导致系…

MIT6.S081 - Lab10 mmap(文件内存映射)

本篇是 MIT6.S081 2020 操作系统课程 Lab10 的实验笔记,目标只有一个:实现文件映射到内存的功能,也就是 mmap。 作为一名 Android 开发者,我可太熟悉 mmap 这个词儿了。Android 的 跨进程通信 Binder 驱动、图形内存分配和管理、…

基于BenchmarkSQL的OceanBase数据库tpcc性能测试

基于BenchmarkSQL的OceanBase数据库tpcc性能测试 安装BenchmarkSQL及其依赖安装软件依赖编译BenchmarkSQLBenchmarkSQL props文件配置数据库和测试表配置BenchmarkSQL压测装载测试数据TPC-C压测(固定事务数量)TPC-C压测(固定时长)生成测试报告重复测试流程梳理安装Benchmar…

WinForm真入门(17)——NumericUpDown控件详解

一、基本概念‌ NumericUpDown 是 Windows 窗体中用于数值输入的控件,由文本框和上下调节按钮组成。用户可通过以下方式调整数值: 点击调节按钮增减数值键盘直接输入使用方向键调整 适用于需要限制数值范围或精确控制的场景(如年龄、参数配…

汽车自动驾驶介绍

0 Preface/Foreword 1 介绍 1.1 FSD FSD: Full Self-Driving,完全自动驾驶 (Tesla) 1.2 自动驾驶级别 L0 - L2:辅助驾驶L3:有条件自动驾驶L4/5 :高度/完全自动驾驶

AiCube 试用 - ADC 水位监测系统

AiCube 试用 - ADC 水位监测系统 水位检测在水资源管理、城市防洪、农业灌溉、家用电器和工业生产等多领域发挥积极建设作用。利用水位传感器,可以实现水资源的智能管理,提高生产效率。 本文介绍了擎天柱开发板利用 AiCube 工具快速创建 I/O 电压读取&…

秒杀压测计划 + Kafka 分区设计参考

文章目录 前言🚀 秒杀压测计划(TPS预估 测试流程)1. 目标设定2. 压测工具推荐3. 压测命令示例(ab版)4. 测试关注指标 📦 Kafka Topic 分区设计参考表1. 单 Topic 设计2. 分区路由规则设计(Part…

memcpy 使用指南 (C语言)

memcpy 是 C 语言标准库中的一个重要函数&#xff0c;用于在内存区域之间复制数据。它是 <string.h> 头文件中定义的高效内存操作函数之一。 函数原型 void *memcpy(void *dest, const void *src, size_t n); 参数说明 dest: 目标内存地址&#xff0c;数据将被复制到这…

跨境电商货物体积与泡重计算器:高效便捷的物流计算工具

跨境电商货物体积与泡重计算器&#xff1a;高效便捷的物流计算工具 工具简介 货物体积与泡重计算器是一款免费的在线工具&#xff0c;专门为物流从业者、跨境电商卖家和需要计算货物运输体积重量的用户设计。这款工具可以帮助您快速计算货物的体积和对应的空运、快递泡重&…

如何避免爬虫因Cookie过期导致登录失效

1. Cookie的作用及其过期机制 1.1 什么是Cookie&#xff1f; Cookie是服务器发送到用户浏览器并保存在本地的一小段数据&#xff0c;用于维持用户会话状态。爬虫在模拟登录后&#xff0c;通常需要携带Cookie访问后续页面。 1.2 Cookie为什么会过期&#xff1f; 会话Cookie&…

matlab simulink中理想变压激磁电流容易有直流偏置的原因分析。

simulink把线性变压器模块拉出来&#xff0c;设置没有绕线电阻的变压器&#xff0c;激磁电感和Rm都有&#xff0c;然后给一个50%占空比的方波&#xff0c;幅值正负10V&#xff0c;线路中设置一个电阻&#xff0c;模拟导线阻抗。通过示波器观察激磁电流&#xff0c;发现电阻越小…

电力系统失步解列与振荡解析

一、基本概念解析 1. 失步&#xff08;Out-of-Step&#xff09; 在电力系统中&#xff0c;失步是指并列运行的同步发电机因功率失衡导致转子间相对角度超过稳定极限&#xff0c;无法维持同步运行的状态。具体表现为&#xff1a; 当系统发生短路、负荷突变或故障切除等扰动时&…