我们是否有一个工具可以在用户级别跟踪目录的文件级别变化?

我们是否有一个工具可以在用户级别跟踪目录的文件级别变化?

我们是否有一个工具可以在用户级别跟踪目录的文件级别变化?

另外,

我的要求是这样的 -

这是我想要跟踪的目录/var/lib/docker/volumes/shared/_data-

应该跟踪和记录对此文件夹内任何文件所做的任何更改。在某个时间点,我想查看谁更改了其中的哪个文件。您的代码能帮助实现这一点吗?

查看预期输出(更改的用户/更改的文件/更改的内容)有多容易?

答案1

是的 -

通知等待- 使用 inotify 等待文件更改

例子:

while inotifywait -e modify /var/log/my_log; do
  if tail -n1 /var/log/my_log | grep error; then
    write_email_to_support
  fi
done

对于您的特定用例,您可以使用-m(监视器)或-d(守护进程,与监视器相同,但在后台运行)并将输出(-o)到某些日志文件:

#!/bin/bash
inotifywait -e create,modify -m /var/lib/docker/volumes/shared/_data -o /var/log/shared_data_log
  • 添加-rinotfiywait递归方式监视更改
  • 您可以使用--format ...来指定输出格式。
  • 这是不是无法查看谁创建或更改了文件。这是文件系统的限制。

查看man inotifywait更多选项。

相关内容