iT邦幫忙

2026 iThome 鐵人賽

DAY 17
0
IT Operation

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

Day 17:Bash 迴圈控制與多服務批次監控

  • 分享至 

  • xImage
  •  

實作背景與觀念說明
當伺服器託管多個關鍵服務(如 Web Server、資料庫、SSH 遠端連線)時,逐一輸入指令檢查服務狀態極為耗時。透過在 Bash 腳本中導入 for 迴圈(Loop),能自動遍歷指定陣列或字串清單,批次執行服務狀態檢驗,大幅降低維運成本並提升排查效率。

核心語法解析與邏輯設計

  • For 迴圈控制結構:使用 for SERVICE in $SERVICES 語法,逐一將變數中的服務名稱(cron、ssh、nginx)帶入迴圈主體中重複執行檢測。
  • 精準服務狀態抓取:採用 systemctl is-active $SERVICE 輕量化指令,可直接回傳 active 或 inactive 狀態字串;搭配 2>/dev/null 屏蔽錯誤訊息,確保輸出結果乾淨易讀。
  • 邏輯分支與狀態比對:結合 if [ "$STATUS" = "active" ] 字串比對,若服務正常則標註 [OK],異常則標註 [FAIL],實現清晰的自動化監控視覺化。

實作
https://ithelp.ithome.com.tw/upload/images/20260916/20183847AgQI3NE21F.png

  • nano 編輯器中撰寫 check_services.sh 腳本的完整程式碼。
    https://ithelp.ithome.com.tw/upload/images/20260916/20183847NF4dtKDpoW.png
  • 執行 chmod +x check_services.sh 授權與 ./check_services.sh 的成果畫面。
    分析:腳本順利輪詢清單中的三個關鍵服務,並成功回傳對應的 [OK] 服務 ... 正在穩定運作中 (active) 訊息,證明透過 Bash 迴圈進行多服務批次維運監控的邏輯完全正確。

上一篇
Day 16 :實務演練整理範本
下一篇
Day 18:Crontab 自動化排程管理與定時維運
系列文
從零開始的 Linux 維運與 Bash 自動化實戰 30 天18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言