cmc*_*nty 21 linux filesystems logging file-monitoring disk-monitoring
我正在寻找一种简单的方法来记录文件系统操作。它应该显示正在访问或修改的文件的名称。
我对 powertop 很熟悉,看来这在一定程度上是有效的,它显示了写入的用户文件。是否有任何其他实用程序支持此功能。
我的一些发现:
powertop:最适合写访问日志,但更关注 CPU 活动
iotop:按进程显示实时磁盘访问,但不显示文件名
lsof:显示每个进程打开的文件,但不显示实时文件访问
iostat:显示实时 I磁盘/阵列的 /O 性能但不指示文件或进程
cmc*_*nty 19
到目前为止iotop
是最好的整体解决方案。以下命令为您提供使用磁盘的所有进程的实时输出。
iotop -bktoqqq -d .5
where: -b is batch mode
-k is kilobytes/s
-t adds timestamp
-o only show processes or threads actually doing I/O
-qqq removes output headers
-d .5 updates every .5 seconds
Run Code Online (Sandbox Code Playgroud)
最终您会注意到该进程将访问磁盘。调查的简单方法是停止该进程,并使用 strace 启动它。例如:
sudo strace -f nmbd -D
Run Code Online (Sandbox Code Playgroud)
这将显示文件系统访问的系统调用。
另一种选择是inotify(7),其中许多发行版提供“inotify-tools”,因此您可以通过以下方式观看路径
inotifywait -r -m
path_you_want_to_watch
x29*_*29a 12
另一种选择是http://linux.die.net/man/7/inotify,其中许多发行版都提供“inotify-tools”,因此您可以通过以下方式观看路径
inotifywait -r -m /<path you want to watch>
Run Code Online (Sandbox Code Playgroud)
小智 6
我最近遇到了使用fanotify 的fatrace。工作很漂亮所以我想我会分享。它确实记录所有类型的文件操作,包括打开/创建/修改到标准输出或可选的文件,您甚至可以过滤以仅获取某些类型的操作。默认情况下,它监视除虚拟安装之外的所有安装。作者本人在这里解释得很好。
归档时间: |
|
查看次数: |
26974 次 |
最近记录: |