對於Linux系統管理員來說,了解如何在命令列中監控輸出是非常重要的。它可以幫助你即時查看系統的狀態和效能數據,診斷問題並採取及時的措施。本文將介紹幾種常用的Linux命令列工具,幫助你輕鬆監控伺服器的輸出。
有時候需要不斷的執行某個指令並追蹤其輸出產生的變化。一個常見的方法是透過寫一段死循環的 shell 腳本來實現,不過 Linux 本身已經提供了一個工具來幫你定期執行指定的程式並將結果全螢幕輸出,本節將會介紹該工具。
概念與術語
#在shell 上執行一個命令列時通常會自動打開三個標準文件,即標準輸入文件(stdin),通常對應終端的鍵盤;標準輸出文件(stdout)和標準錯誤輸出文件(stderr),這兩個檔案都對應終端機的螢幕。進程將從標準輸入文件中得到輸入數據,將正常輸出數據輸出到標準輸出文件,而將錯誤訊息送到標準錯誤文件中。
操作實戰:使用 watch 定期執行指令並監視輸出
watch 的基本用法
#watch 的使用方法很簡單,只需要:
watch 命令
就行了,這樣 watch 指令會每隔兩秒執行一次 指令,並全螢幕輸出執行結果。
下圖是執行 watch date 的一個介面:
Every 2.0s: date orangepipc2: Sat Oct 3 09:55:14 2020 Sat 03 Oct 2020 09:55:14 AM CST
圖中第一行的 Every 2.0s: 表示 watch 每隔 2 秒執行一次指令。後面的 date 為要執行的命令。再後面的 orangepipc2: 是執行指令的主機名,Sat Oct 3 09:55:14 2020 為執行指令的時間。從第三行開始就是命令執行的輸出結果。
#指定重複執行指令的間隔時間
透過 -n 間隔 你也可以設定重複執行指令的間隔時間,例如我可以調整為每 5 秒執行一次 date 指令
watch -n 5 date
發現輸出中的變化
#如果只是單純的重複執行命令的話,那麼可以很容易地透過 shell 循環來實現,然而 watch 的能力不僅如此。
透過 -d 選項,watch 還能高亮顯示兩個輸出中不同的部分,這個功能相當實用:
watch -d -n 10 date
除了高亮顯示輸出中改變的部分外,你也可以設定讓 watch 發現結果有改變時退出迴圈執行,方法是使用 -g/–chgexit 選項。例如我們可以透過下面命令來發現 USB 變動情況。
watch -g 'dmesg |grep -i usb |tail'
偵測指令執行的回傳值
預設情況下,watch 並不會在乎指令的執行結果是否成功,但你可以設定讓watch 偵測指令的回傳值,當指令執行回傳非0 時發出蜂鳴(-b/–beep)或直接退出(- e/–errexit)。
watch -e wrong_commands
透過學習本文提到的Linux命令列工具,你可以更有效率地監視伺服器的輸出,並及時發現和解決潛在的問題。這將有助於保持伺服器的穩定性和安全性,讓你的業務更加順暢。無論你是有經驗的系統管理員還是初學者,在掌握這些技能之後,你都將更得心應手地管理你的Linux系統。
以上是掌握Linux命令列監控輸出,更好地管理伺服器的詳細內容。更多資訊請關注PHP中文網其他相關文章!