是否可以实时检测文件或文件夹的创建/删除?

ken*_*enn 6 linux filesystems directory files mkdir

我想即时监控文件或文件夹的创建/删除,可以吗?

编辑:我正在使用 Ubuntu 16.04

小智 6

在 Linux 中使用该接口是可能的inotify(7)

使用该工具的简单示例命令行工具是inotifywait(1). 例子:

inotifywait -mr /tmp
Run Code Online (Sandbox Code Playgroud)

将打印目录内发生的所有类型的事件(打开的文件、创建的文件)/tmp。该-r选项告诉它在子目录上递归地设置监视,并且-m选项告诉它在第一个事件后不退出。

可以使用以下选项限制观看的事件集-e:例如。-e create,delete仅打印有关创建或删除的目录条目的信息。

  • 在巨大的文件系统树中没有什么是有效的;实时观看所有进程的情况更糟。 (2认同)

Rom*_*nov 4

最简单的(对我来说)方法是在安装后使用auditd守护进程(手册页)。您可以/var/run通过启动守护进程并添加要审核的目录来监视目录中的文件操作:

\n\n
auditctl -w /var/run/ -p rw -k var-run-pids\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用此命令,您可以检查写入大部分信息的守护进程日志:

\n\n
tail -20 /var/log/audit/audit.log\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用此命令,您可以在审核日志中搜索特定事件:

\n\n
ausearch -f /var/run\n
Run Code Online (Sandbox Code Playgroud)\n\n

您可以这样发送消息(来自auditctl的手册页):

\n\n
\n

-m text

    \n 将用户空间消息发送到审核系统。\xc2\xa0\n 只有您有能力\n 才能完成此操作CAP_AUDIT_WRITE(通常 root 用户\n 有此能力)。\xc2\xa0 结果事件将是用户类型。

\n

\n

  • @kenn,你可以做到,审计守护进程可以在用户空间中发送消息(但仅限于root)`-m text` (2认同)