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.pswp.cn/news/903173.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/903173.shtml
英文地址,請注明出處:http://en.pswp.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; 當系統發生短路、負荷突變或故障切除等擾動時&…