watch:定期重複Linux / Unix命令
Watch 命令
watch是一個簡單的命令,只有幾個選項。watch命令的基本語法是:
watch [-dhvt] [-n <seconds>] [--differences[=cumulative]] [--help] [--interval=<seconds>] [--no-title] [--version] <command>
watch命令默認每隔2秒執行後面參數給出的命令。這個時間根據的是命令執行結束到上次執行的間隔來算的。比如,watch命令可以用於監測日誌更新,更新是在文件的後面追加新的內容,因此可以用tail命令來檢測文件的更新(LCTT 譯註:可以直接使用 tail -f
主動跟蹤某個文件的更新,而不用使用 watch。)。這個命令會持續地運行直到你按下 CTRL + C
回到提示符。
例子
每兩秒監測 errors/notices/warning 生成的情況。
watch tail /var/log/messages
按指定的時間間隔監測磁碟的使用率。
watch df -h
對磁碟管理員而言,關注高I/O等待導致的磁碟操作尤其是mysql事務是很重要的。
watch mysqladmin processlist
監測伺服器負載和運行時間。
watch uptime
監測exim給用戶發送通知的隊列大小。
watch exim -bpc
1) 指定延遲
watch [-n <seconds>] <command>
命令默認運行的時間間隔可用-n改變,下面的命令會在5秒後運行後面的命令:
watch -n 5 date
2) 連續輸出比較
如果你使用-d選項,它會累次地高亮第一次和下一次命令之間輸出的差別。
watch [-d or --differences[=cumulative]] <command>
例子 1,用下面的命令連續地輸出時間並觀察高亮出來的不同部分。
watch -n 15 -d date
第一次執行date的輸出會被記錄,15秒後會重複運行命令。
在下一次執行時,可以看到輸出除了被高亮的秒數從14到29之外其他的都一樣。
例子 2,讓我們來體驗一下兩個連續的「uptime」命令輸出的不同。
watch -n 20 -d uptime
現在列出了時間和3個負載快照之間的不同。
3) 不帶標題輸出
如果你不希望顯示更多關於延遲和實際命令的信息可以使用-t選項。
watch [-t | --no-title] <command>
讓我們看下下面例子命令的輸出:
watch -t date
Watch 幫助
可以在ssh中輸入下面的命令來得到watch的簡要幫助。
watch -h [--help]
Watch 版本
在ssh終端中運行下面的命令來檢查watch的版本。
watch -v [--version]
不足
不幸的是,在終端大小調整時,屏幕不能在下次運行前重畫。所有用--difference高亮的內容也會在更新時丟失。
總結
watch對系統管理員而言是一個非常強大的工具,因為它可以用於監控、日誌、運維、性能和系統運行時的吞吐量。人們可以非常簡單地格式化和推延watch的輸出。任何Linux命令/程序或腳本可以按照所需監測和連續輸出。
via: http://linoxide.com/linux-command/linux-watch-command/
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive