![每周清除 /tmp 吗?](https://linux22.com/image/530041/%E6%AF%8F%E5%91%A8%E6%B8%85%E9%99%A4%20%2Ftmp%20%E5%90%97%EF%BC%9F.png)
几周前,我们设置了一个 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 进行缓冲和临时存储。
如果信息不重要,它就不会将其存储在那里:)
我已经看到,在服务器上记录缓冲区、网络服务器会话甚至库版本。最好不要管它。除非需要清理……
希望这可以帮助 :)