如何在 Linux 上使用 Watch 命令定期運行程序
有時,您需要重複執行命令或程式來監視系統的各個方面,例如正在進行的進程、磁碟空間使用情況或使用者登入。 Linux watch 指令可讓您自動執行這些任務,而無需一次又一次地手動執行它們。
使用此命令可以連續觀察各種系統事件,包括使用者登入活動、網路狀況、處理器和記憶體使用率、可用儲存容量等。探索在 Linux 作業系統中使用「watch」指令以獲得全面監控功能所需的步驟。
什麼是手錶指令?
Linux 中的「watch」指令允許定期執行指定的命令或程序,並在終端機中顯示輸出。這使得人們能夠在輸出不斷更新時即時監控對輸出的任何修改,並在每次迭代時替換先前的輸出。預設情況下,該命令將每兩秒執行一次,除非透過按
觀察命令語法
watch指令的語法是:
watch options <command>
使用“watch”命令透過命令列參數提供多種設定選擇。當沒有任何指定執行時,「watch」指令將每隔兩秒執行一次指定的操作(如圖所示),隨後的顯示將顯示「ls」指令發出的結果:
watch ls -l ~/
演示顯示將透過每兩秒更新一次視覺化來展示在生成、刪除或更改檔案尺寸時對目錄清單的修改。
使用 watch 每 X 秒執行一個指令
您可以靈活地修改watch
命令的刷新周期。這相當於指定「watch」指令在重新執行其指令之前保持休眠狀態的持續時間。為了調整刷新間隔,請使用“-n”選項以及以秒為單位的時間段作為參數。
watch -n
為了每五秒重複執行一個指令,可以使用以下方法:
watch -n 5 <command>
突出顯示更新之間的更改
shell 腳本中的「watch」指令會在每次執行時修改其顯示。透過使用“-d”選項,還可以強調當前輸出和先前輸出之間的差異。
watch -d
在 watch 指令的輸出中隱藏標題
「watch」命令的預設行為是在每個輸出中顯示一個標題,其中包括有關更新間隔、命令名稱以及系統當前日期和時間的資訊。若要從輸出中省略此標頭,您可以使用“-t”選項。
watch -t <command>
出錯時發出蜂鳴聲
Linux 進程完成後,通常會回到退出狀態,該狀態通常被視為成功或失敗的衡量標準。傳統實踐規定,值為零表示成功執行,而任何其他值則表示錯誤。在 watch 命令的「-b」選項的上下文中,此退出狀態用於在傳回非零值時觸發發出蜂鳴聲形式的聲音訊號,從而提醒使用者其腳本中的潛在問題命令。
使用 systemd 監視 sshd.service 狀態並在服務中斷時接收通知的一種可能方法是使用以下命令:
watch -b sudo systemctl status sshd.service
為了透過「beep」套件對已停止運作的服務實施使用蜂鳴聲形式的聲音警報的通知機制,可以利用以下流程。透過執行此命令,只要指定的服務停止運行,揚聲器就會發出一系列連續的蜂鳴聲。相反,一旦服務恢復,蜂鳴聲就會停止。值得注意的是,此功能取決於使用者係統上是否存在上述「beep」套件。
在輸出變更時退出 watch 指令
「-g」標誌允許在偵測到結果輸出中的任何變更時停止監視命令的執行並終止其操作,這在監視輸出修改至關重要的情況下特別有用。
修改輸出後,「watch」指令的執行將停止。該操作可以與“echo”命令的利用有效地結合以在顯示表面上呈現視覺內容。
假設您正在等待某個目錄中出現特定檔案。在這種情況下,執行提供的命令將能夠持續監視所述目錄中特定檔案的存在。一旦偵測到,watch命令的執行將停止,並在終端機介面上顯示檔案到達的通知。
watch -g "ls -l | grep filename" && echo "file arrived"
另一個說明性的例子涉及在特定個人存取您的網路時收到警報:
watch -g "who | grep username" && echo "username logged in"
當前命令應監視「who」命令產生的輸出,該命令枚舉目前連接到系統的個人。使用者登入後,「watch」指令的功能將停止並在終端介面內呈現通知。
以類似的方式,只要對特定檔案進行修改,就可以指示「watch」指令停止特定服務的執行。然而,在使用互連指令的管道時,必須將完整的指令包含在引號內。
觀看 Linux 系統中的活動
如果您經常順序執行相同的任務,那麼使用「watch」命令可能是實用的解決方案。透過使用此命令,您可以消除不斷輸入命令來識別已進行的任何修改的需要。
人們可以利用「watch」指令以及各種 Linux 指令來監視系統資產和任務,並監視檔案或目錄的變更。