lsof
是一個用于列出打開文件的實用工具,它也可以用來查看當前系統打開的套接字信息。盡管 lsof
本身不是實時監控代碼的工具,但你可以結合其他工具來實現代碼實時監控的需求。
例如,你可以使用 inotifywait
命令來監控文件系統的變化,包括文件的創建、修改和刪除等操作。當檢測到這些變化時,你可以觸發一個腳本或程序來運行 lsof
命令,從而獲取當前打開的文件和套接字信息。
以下是一個簡單的示例,演示如何使用 inotifywait
和 lsof
來監控特定目錄下的文件變化:
首先,確保你的系統已經安裝了 inotify-tools
軟件包。在基于 Debian 的系統上,可以使用以下命令安裝:
sudo apt-get install inotify-tools
創建一個名為 monitor.sh
的腳本文件,并添加以下內容:
#!/bin/bash
# 監控的目錄
directory_to_watch="/path/to/your/directory"
# 使用 inotifywait 監控目錄變化
inotifywait -m -r --format '%w%f' "$directory_to_watch" | while read file; do
echo "文件發生變化: $file"
# 運行 lsof 命令獲取當前打開的文件和套接字信息
lsof "$file"
done
請將 /path/to/your/directory
替換為你想要監控的目錄路徑。
為腳本文件添加可執行權限:
chmod +x monitor.sh
運行腳本文件以開始監控目錄變化:
./monitor.sh
現在,每當指定目錄中的文件發生變化時,monitor.sh
腳本都會自動運行 lsof
命令,并輸出當前打開的文件和套接字信息。這樣,你就可以實現代碼實時監控的需求了。