iT邦幫忙

2026 iThome 鐵人賽

DAY 19
0
IT Operation

從零開始的 Linux 維運與 Bash 自動化實戰 30 天系列 第 19

Day 19:Shell Script 進階應用——自動化文字剖析與 Nginx 日誌分析

  • 分享至 

  • xImage
  •  

實作背景與維運痛點
在日常的 Linux 系統維運與 DevOps 實務中,伺服器每天都會產生龐大的日誌檔(Logs),例如 Nginx 存取紀錄或系統安全日誌。當系統發生異常或遭到異常流量攻擊時,如果純粹靠人力使用 cat 或 less 手動逐行翻找,效率極度低下。因此,掌握 Linux 文字處理工具並將其寫成 Bash 自動化腳本,是不可或缺的核心技能。

核心工具簡介(文字處理)

  • grep:用於搜尋特定的關鍵字列,適合快速篩選錯誤訊息(如 ERROR 或 404)。
  • sed:串流文字編輯器,常用於即時替換、刪除或修改文字內容。
  • awk:強大的欄位剖析工具,能自動將每一行文字按指定分隔符切分,並針對特定欄位進行運算與統計。

實作
https://ithelp.ithome.com.tw/upload/images/20260920/20183847y1XYn8xpn6.png
透過 nano parse_log.sh 編輯腳本
https://ithelp.ithome.com.tw/upload/images/20260920/20183847VG1b0uFUd9.png
執行 chmod +x parse_log.sh 賦予執行權限。
https://ithelp.ithome.com.tw/upload/images/20260920/20183847ZML6Ptcjjz.png
使用 curl http://localhost/ 發送 HTTP 請求,強制 Nginx 在 /var/log/nginx/access.log 產生真實存取紀錄。
https://ithelp.ithome.com.tw/upload/images/20260920/20183847MSUTKfHCbw.png
由於系統日誌需要最高權限,執行 sudo ./parse_log.sh 後,終端機精準輸出 3 127.0.0.1,成功驗證腳本能自動統計出本機 IP(127.0.0.1)訪問了 3 次。


上一篇
Day 18:Crontab 自動化排程管理與定時維運
下一篇
Day 20:Linux 伺服器安全初探——SSH 安全設定與防火牆(UFW)基礎
系列文
從零開始的 Linux 維運與 Bash 自動化實戰 30 天22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言