查看存在几毫秒的临时文件

Dan*_*man 6 permissions data-recovery files

我正在尝试调试一个没有记录我需要的信息的程序。幸运的是,它确实写入了应包含信息的临时文件。这些文件被写入一个目录,例如:program/temp/{someGUID}在十台机器之一上。{someGUID}在运行之前既不知道也不知道哪台机器将包含临时文件。运行完成后,临时文件被删除。从开始到结束的时间对于人工干预来说太快了。

我通过客户端程序开始运行,但写入文件的是服务器。我无法操纵服务器程序,一旦开始运行,我就无法停止它。我确实拥有对可以写入临时文件的所有机器的 root 访问权限。我正在运行 CentOS 6。

有没有办法允许服务器用户将文件写入临时目录但不删除它们?它可能会导致运行崩溃,但它会给我我需要的信息。有没有办法在写入后/删除临时文件夹之前立即复制临时文件夹的内容?我必须安装一个程序来恢复已删除的文件吗?

Gil*_*il' 4

列出程序访问的文件提到了几种记录程序文件访问的方法(strace、、LD_PRELOADLoggedFS、审计),但没有方便的方法来获取文件内容。

保存所有程序输出的一种便捷方法是copyfs。CopyFS 创建目录树的视图,保留该目录树中曾经存在的所有文件的所有过去版本。请注意,无需 root 访问权限即可使用它。挂载包含临时文件的目录:

mkdir versions
copyfs-mount $PWD/versions $PWD/program/temp
program_to_debug
fusermount -u program/temp
ls versions
Run Code Online (Sandbox Code Playgroud)