查看存在时间为毫秒的临时文件

查看存在时间为毫秒的临时文件

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

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

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

答案1

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

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

mkdir versions
copyfs-mount $PWD/versions $PWD/program/temp
program_to_debug
fusermount -u program/temp
ls versions

相关内容