一、介紹
在日常的工作中,當伺服器發生異常狀況時,我們需要了解伺服器的狀態變化以及可能出現的問題。而Linux的文件更改記錄工具-w,可以幫助系統管理員實時監測系統的文件狀態變化,找到問題的根源。
-w命令是inode變化監視器,通過對比Inode號和Size等信息來判斷文件是否被更改過,是syslogd和acct程序的重要組成部分。
二、查看正在查看的文件
我們可以使用-w命令來查看正在寫入或更新的文件:
$ watch -n 1 -d lsof -r 1 -p `pidof "Program Name"`
其中,「Program Name」修改為你想要監測的程序名。這個命令會每隔1秒更新一次。
三、查看被更改的文件
我們可以使用-w命令查看最近被更改的文件:
$ watch -n 1 -d "find /var/log -type f -mmin -1 -print0 | xargs -0 ls -lUd"
運行後,會每隔一秒檢測一遍/var/log目錄下被更改過的文件,輸出如下:
-rw-r--r-- 1 root root 130 Aug 15 09:23 /var/log/nginx/access.log -rw-r--r-- 1 root root 130 Aug 15 09:23 /var/log/nginx/error.log
上述命令中的-mmin參數設置了查找修改時間在1分鐘內的文件,-print0和xargs -0的組合用於處理文件名中包含空格和特殊字元的情況。
四、同時監控多個文件
有時我們需要監控多個文件,可以使用命令:
$ watch -n1 -d -t "ls -lrt /var/log/messages /var/log/secure"
輸出如下:
-rw-------. 1 root root 9393 Aug 15 11:00 /var/log/messages -rw-------. 1 root root 20432 Aug 15 11:00 /var/log/secure
五、查看文件夾下所有文件的變動
有時,我們需要查看某個目錄下所有文件的變動情況,可以使用命令:
$ watch -n 1 -d "find /opt/data/logs/* -type f -exec stat \"{}\" \; | grep Modify"
該命令會每隔一秒檢測一遍/opt/data/logs/目錄下所有文件的變動情況,並輸出修改時間等信息。
六、總結
使用-w查看系統文件更改記錄是Linux運維工程師必備的技能之一。通過以上幾種方式,我們可以實時監測系統的文件狀態變化,及時排查並解決問題。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/158111.html