Linux
列出 *nix 中所有打開的 ‘.log’ 文件
作為系統管理員,有時您可能不確定新應用程序的日誌文件路徑。根據系統的不同,可能有多種方法可以找到相同的內容。請分享我們可以獲得系統上打開的日誌文件列表的不同方式。
使用者 X 文件
如果您只需要查看單個使用者的打開文件:
$ lsof -u<user>
或者只有帶有文本文件描述符的文件(通常是真實文件):
$ lsof -a -u<user> -d txt
例子
使用者正在使用的所有文件
saml
。$ lsof -usaml COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME vim 1341 saml cwd DIR 253,2 4096 10370078 /home/saml/mp3s vim 1341 saml rtd DIR 253,0 4096 2 / vim 1341 saml txt REG 253,0 2105272 1215334 /usr/bin/vim vim 1341 saml mem REG 253,0 237616 393586 /lib64/libgssapi_krb5.so.2.2
只有文件使用文本描述符並且歸使用者所有
saml
。$ lsof -a -usaml -d txt Output information may be incomplete. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME vim 1341 saml txt REG 253,0 2105272 1215334 /usr/bin/vim bash 1468 saml txt REG 253,0 940312 2490450 /bin/bash gvfsd-htt 1777 saml txt REG 253,0 179528 1209465 /usr/libexec/gvfsd-http gnome-key 2051 saml txt REG 253,0 953664 1214068 /usr/bin/gnome-keyring-daemon ...
lsof 作為根
通常,儘管您希望以
lsof
提升的權限執行,以便可以查看系統上由 Apache 程序或 root 擁有的所有文件,例如。$ sudo lsof
您還可以
lsof
向後使用並找出打開特定文件的程序。$ sudo lsof /var/log/messages Output information may be incomplete. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rsyslogd 1266 root 4w REG 253,0 372306 1973825 /var/log/messages
lsof 作為頂部
您也可以使用
lsof
類似於top
每隔幾秒輪詢一次並向您顯示系統上發生的情況的地方。$ sudo lsof -u saml -c sleep -a -r5
例子
該
-c ...
參數僅顯示名稱中帶有字元串...
的程序。在這裡,我使用命令sleep
來顯示這一點。我執行lsof
每 5 秒輪詢一次的命令,並顯示由任何程序打開的任何文件,其中包含字元串 sleep。然後我跑到sleep 5
另一個終端。$ sudo lsof -u saml -c sleep -a -r5 Output information may be incomplete. ======= ======= ======= ======= COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sleep 10780 saml cwd DIR 253,2 32768 10354689 /home/saml sleep 10780 saml rtd DIR 253,0 4096 2 / sleep 10780 saml txt REG 253,0 27912 2490470 /bin/sleep sleep 10780 saml mem REG 253,0 151456 393578 /lib64/ld-2.13.so sleep 10780 saml mem REG 253,0 1956608 393664 /lib64/libc-2.13.so sleep 10780 saml mem REG 253,0 99158752 1209621 /usr/lib/locale/locale-archive sleep 10780 saml 0u CHR 136,59 0t0 62 /dev/pts/59 sleep 10780 saml 1u CHR 136,59 0t0 62 /dev/pts/59 sleep 10780 saml 2u CHR 136,59 0t0 62 /dev/pts/59 ======= ======= ======= =======
日誌文件
您可以
lsof
通過簡單地使用上述任何輸出來查找您有興趣查看正在發生的事情的日誌文件的名稱來查找日誌文件。$ lsof .... | grep "log file name"