我有一个文件,很多进程(和进程线程)正在访问它。
我想监视该文件以获取所有进程尝试访问该文件的列表。能够记录时间戳也非常适合记录,但我可以不用它。
是否有任何类似的Unix实用程序?
如果不存在这样的实用程序,我应该如何使用脚本(shell,Perl)或程序(C,C ++)对其进行编程?
答案 0 :(得分:9)
在Linux下,inotify可能就是您要找的。 p>
答案 1 :(得分:6)
我认为您正在寻找的基本功能是在UNIX命令fuser
中。
这将告诉您哪些进程正在使用文件(或端口,如果您愿意)。
答案 2 :(得分:2)
FAM - 文件更改监视器http://oss.sgi.com/projects/fam/ 要么 Gamin http://people.gnome.org/~veillard/gamin/
可能对你很有帮助(gamin似乎保持不变,而我不能对FAM说同样的话)。
您可以将您的应用程序附加到FAM / Gamin,然后如果观察到的文件出现问题,您将收到通知。 有关详细信息,我建议:http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=bks&fname=/SGI_Developer/books/IIDsktp_IG/sgi_html/ch08.html
答案 3 :(得分:1)
您可能需要查看lsof
。