inotify 是 Linux 系統中的一個內核子系統,它可以監控文件系統事件,例如文件的創建、修改、刪除等。然而,inotify 本身并不能直接監控網絡流量。要監控網絡流量,你可以使用其他工具,如 tcpdump、iftop 或 nethogs。但是,如果你想通過 inotify 監控網絡流量相關的文件變化,可以關注 /proc/net/dev 文件,它會顯示網絡接口的統計信息。
以下是一個簡單的 Python 腳本,使用 inotify 監控 /proc/net/dev 文件的變化,并在檢測到變化時輸出相關信息:
import os
import time
from inotify_simple import INotify, flags
# 初始化 inotify
inotify = INotify()
watch_flags = flags.MODIFY | flags.CLOSE_WRITE
wd = inotify.add_watch('/proc/net/dev', watch_flags)
try:
while True:
# 讀取事件
events = inotify.read()
for event in events:
# 輸出事件信息
print(f"File {event.name} triggered event: {event.maskname}")
with open('/proc/net/dev', 'r') as f:
content = f.read()
print(content)
time.sleep(1)
except KeyboardInterrupt:
inotify.rm_watch(wd)
在這個腳本中,我們使用 inotify-simple 庫來簡化 inotify 的操作。首先,我們監控 /proc/net/dev 文件的修改和關閉寫入事件。當檢測到這些事件時,我們讀取文件內容并輸出。
要運行此腳本,請確保已安裝 inotify-simple 庫:
pip install inotify-simple
然后運行腳本:
python monitor_network_traffic.py
請注意,這個腳本只是監控 /proc/net/dev 文件的變化,而不是直接監控網絡流量。如果你需要更詳細的網絡流量監控,建議使用其他工具。