debian

如何用inotify监控网络流量

小樊
38
2025-07-12 06:09:31
栏目: 编程语言

inotify 是 Linux 系统中的一个内核子系统,它可以监控文件系统事件,例如文件的创建、修改、删除等。然而,inotify 本身并不能直接监控网络流量。要监控网络流量,你可以使用其他工具,如 tcpdumpiftopnethogs。但是,如果你想通过 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 文件的变化,而不是直接监控网络流量。如果你需要更详细的网络流量监控,建议使用其他工具。

0
看了该问题的人还看了