Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何知道哪些进程访问了文件?_Linux_File_Process_Monitor - Fatal编程技术网

Linux 如何知道哪些进程访问了文件?

Linux 如何知道哪些进程访问了文件?,linux,file,process,monitor,Linux,File,Process,Monitor,我的操作系统是linux 我的文件位于/etc, 它的完整路径类似于/etc/AAA 任何工具或命令都可以告诉我在一段时间内由哪个进程访问文件。 例如 凌晨1:10,处理写入/etc/AAA 凌晨3:50,进程B读取/etc/AAA 我需要知道访问/et/AAA的所有进程id 谢谢。统计给你一些信息 $ stat test.txt File: `test.txt' Size: 166 Blocks: 1 IO Block: 65536 regu

我的操作系统是linux

我的文件位于/etc,
它的完整路径类似于/etc/AAA

任何工具或命令都可以告诉我在一段时间内由哪个进程访问文件。 例如 凌晨1:10,处理写入/etc/AAA 凌晨3:50,进程B读取/etc/AAA

我需要知道访问/et/AAA的所有进程id


谢谢。

统计给你一些信息

$ stat test.txt
  File: `test.txt'
  Size: 166             Blocks: 1          IO Block: 65536  regular file
Device: 6a81ccb1h/1786891441d   Inode: 6755399442667785  Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   PC_01)   Gid: (  513/    None)
Access: 2014-07-16 16:03:18.208462800 +0200
Modify: 2014-07-16 16:03:18.209462900 +0200
Change: 2014-07-16 16:03:18.209462900 +0200
 Birth: 2014-07-16 16:03:18.208462800 +0200

没有工具可以做到这一点。要查看哪个进程当前打开了文件,可以使用
fuser
lsof

要获取更改的历史记录,您需要运行一个进程来监视文件系统的更改。您可以使用来构建它

相关的:


linux审计系统可以帮助您并提供详细信息:

以下是Redhat网站上的一些,但应该适用于其他linux变体。大多数发行版都有审计系统,但可能是可选安装

假设审核子系统已经在运行,您可以添加一条规则来监视示例文件的读取访问,如下所示:

auditctl -w /etc/AAA -p r -k mywatch
然后,您可以使用comamnd查看结果:

ausearch -k mywatch

或者查看audit.log文件(在某些系统上位于/var/log/audit中)

-1
stat
不会显示哪个进程接触了文件。另请参阅