每周清除 /tmp 吗?

每周清除 /tmp 吗?

几周前,我们设置了一个 cronjob,每周日早上 5 点清除 /tmp 中的所有内容。我并不认为这是一个好主意。今天我们发现某个任务依赖于 /tmp 中的现有目录 - 该任务已损坏,更糟糕的是,它对失败的原因保持沉默。问题是:

删除 /tmp 通常是个坏主意吗?

答案1

处理 /tmp 中的陈旧文件并不是一个坏主意,但我不确定删除其中的内容是否是最好的选择。

我的 CentOS 服务器使用一种称为 tmpwatch 的程序,它每天运行,并且可以配置为仅删除在一定时间内(30 天是常见的延迟时间)未访问过的文件,或在一定时间内未修改过的文件;可以告知它不要修改目录,除非它们是空的,或者根本不要触碰目录文件,或者排除某个用户(root 是一个常见的选择)使用的文件。

对我来说,这个工具很好用,它提供了足够的钩子,你可以调整它来做你想做的事情。我推荐 tmpwatch,或者你的发行版提供的任何类似的东西。

答案2

这在一定程度上取决于应用程序和发行版。在重启时擦除 /tmp 通常是安全的。在正在运行的系统上擦除它很可能会破坏应用程序。/tmp 不适用于永久存储,任何将其用于此类存储的应用程序都会严重损坏,但应用程序可以轻松地在保持在线的系统上将文件留在 /tmp 中数月。这就是我对 tmpwatch 有点怀疑的原因。

最后,当服务器硬盘空间不足时,我只会查看 /tmp 中存储了多少数据。如果硬盘空间充足,何必费心呢?

答案3

根据联邦高中

程序不能假设 /tmp 中的任何文件或目录在程序调用之间都会被保留。

基本原理

IEEE 标准 P1003.2(POSIX,第 2 部分)提出了与上述部分类似的要求。

虽然可以以站点特定的方式删除存储在 /tmp 中的数据,但建议在系统启动时删除位于 /tmp 中的文件和目录。

FHS 根据历史先例和常见做法增加了此建议,但并未将其作为要求,因为系统管理不属于本标准的范围。

但是,这只是一个建议,而且,它只在程序调用之间声明——除非您在周日凌晨 5 点重新启动服务器,否则不会发生这种情况。因此,诸如锁文件、临时套接字等内容会被删除并导致问题。

作为疯了建议使用tmpwatch

答案4

我对此的想法是......

是的..不要擦除/tmp..

许多奇怪的应用程序使用 temp 进行缓冲和临时存储。

如果信息不重要,它就不会将其存储在那里:)

我已经看到,在服务器上记录缓冲区、网络服务器会话甚至库版本。最好不要管它。除非需要清理……

希望这可以帮助 :)

相关内容