如何找出什么是创build临时文件

我注意到/ tmp中有很多空的文件,其名称类似于“/tmp/tmp.tMIHx17730”。 我运行审计规则,我发现mktemp创build它不是太有用。

如何找出哪个脚本调用mktemp来创build这些文件? 我可以用auditd捕获父进程ID /命令行吗?

更新:我相信我有父进程id(ppid = 17729),但脚本很快退出,我找不到脚本。 我可以安装auditd以获得父进程命令行吗?

更新2:这里是我如何安装审计显示whatwrites tmp:

auditctl -w /tmp -k tmpfiles 

然后:

 ausearch -k tmpfiles|grep "tmp." 

然后,我select一个文件,我做到了

 ausearch -k tmpfiles -f /tmp/tmp.tMIHx17730 

这显示了我创build文件和父进程pid的过程。 我需要设置一些启动监听器的进程来捕捉那个pid最近的进程

好。 我发现它是这样的:

安装auditd:

 auditctl -w /tmp -k tmpfiles auditctl -a task,always 

然后search

 ausearch -k tmpfiles|grep "/tmp/tmp." 

我得到这样的东西:

然后我得到ppid = 5807和search或过程:

 ausearch -p 5807 

我有类似的东西

 time->Thu Nov 12 12:14:34 2015 type=SYSCALL msg=audit(1447323274.234:2547064): arch=c000003e syscall=231 a0=1 a1=3c a2=1 a3=0 items=0 ppid=5772 pid=5807 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=84330 comm="bitdefender-wra" exe="/bin/bash" key=(null) 

其中exe =“/ bin / bash”是可执行文件,comm =“bitdefender-wra”是(截断的)命令行。

所以我只是运行:

 # locate bitdefender-wra /usr/lib/MailScanner/bitdefender-wrapper 

那里是:

 LogFile=$(mktemp) || { echo "$0: Cannot create temporary file" >&2; exit 1; } 

我改变这个:

 LogFile=$(mktemp /tmp/bitdefender.XXXXXXXXXXXX) || { echo "$0: Cannot create temporary file" >&2; exit 1; } 

为了validation这是不删除它的临时文件的脚本。 下面有rm -f $LogFile ,但是之前也有退出。

请记住,可能有更好的方法。 所以我会等待有人提供最好的方法来find创buildtmp文件的进程的命令行的父母。 我的方式没有太多的filter,并创build太大的日志。