我正在 Linux 上开发一些使用 JetS3t 从 S3 检索文件的 HTTP 服务器软件。这些文件都在 5MB 左右。随着时间的推移,JetS3t 会在 /tmp 目录中创建大量 *.tmp 文件。
但是,由于这一切都在永远不会重新启动的服务器上运行,因此文件永远不会被丢弃。相反,它们最终会填满根分区,从而导致许多问题(如 HTTP 连接断开等)
有没有办法配置 JetS3t,使其自行清理?
谢谢!
我想出了一个不优雅但有效的解决方案。我只是添加了一个定期运行以下命令的 cron 作业:
find /tmp/*tmp -amin +10 -exec rm -f {} \;
基本上,find
找到至少十分钟前访问过的所有 JetS3t 的 tmp 文件(感谢-atime +10
),然后删除它们。
这模仿了某些系统的行为tmpreaper
或tmpwatch
存在于某些系统上。对于使用这些应用程序的其他人,请注意,因为它们可以促进一些setuid 漏洞利用。我意识到我的方法也可能受到同样的攻击,但现在我别无选择。