watch 是一個Linux的實時監測指令,它實時監測一個指令的運作結果,省得一遍又一遍的手動運作。
最為常用的參數:
-n 表示間隔多少秒執行一次指令
-d 表示高亮,當監控的指令執行結果有變動,則高亮顯示。
示例:
實時監控系統的使用者登入情況,當有新使用者登入,或登出都會高亮顯示下。
watch -d -n 1 'who'
Every 1.0s: who Fri Nov 9 08:55:50 2018
hello pts/0 2018-11-09 08:45 (:10)
root pts/1 2018-11-09 08:46 (192.168.254.1)
root pts/2 2018-11-09 08:49 (192.168.254.1)
CTRL + C可以退出正在執行的watch監控程序。
watch執行的指令可以是多條,多條以逗号分隔。
示例:
watch -d -n 1 'df -h;ls -l'
Every 1.0s: df -h;ls -l Fri Nov 9 08:57:23 2018
檔案系統 容量 已用 可用 已用% 挂載點
/dev/mapper/centos-root 17G 14G 3.1G 82% /
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 8.7M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 1.6G 0 1.6G 0% /run/user/1005
tmpfs 1.6G 0 1.6G 0% /run/user/0
總用量 13656
-rw-------. 1 root root 1257 2月 27 2018 anaconda-ks.cfg
drwxr-xr-x 2 root root 6 8月 31 11:29 express
drwxr-xr-x. 13 root root 4096 11月 7 14:31 hbk
-rw-------. 1 root root 1675 7月 24 08:50 huangbaokang
-rw-r--r--. 1 root root 402 7月 24 08:50 huangbaokang.pub
drwxr-xr-x 3 root root 255 9月 5 08:46 node_test
drwxr-xr-x 2 root root 40 8月 30 16:41 ruby_test
-rw-r--r-- 1 root root 13950976 7月 25 17:08 swapfile
這條指令可以監控磁盤的使用狀況,以及目前目錄下檔案的變化狀況,包括檔案的新增、删除和檔案修改日期的更新等。
在項目中也通常用tail 或tailf指令,但這兩個指令沒有高亮的顯示,在運維中常常用來監控輸出日志,比如nginx日志,tomcat,apache日志等,而watch指令顯示将占用一個螢幕,各有各的好處。