/tmp 目录是如何清理的?

/tmp 目录是如何清理的?

目录是如何/tmp清理的?是自动清理吗?如果是,清理频率是多少?

答案1

注意!此答案至少从 ubuntu 14.04 开始就已过时。查看其他答案以了解当前情况,如果它们被证明是正确的,请疯狂地点赞。还可以发表评论,以便我可以在此处放置当前正确答案的链接。

对于 14.04 请参阅https://askubuntu.com/a/759048/1366

对于 16.10 请参阅https://askubuntu.com/a/857154/453746


2011 年的旧答案:

清理/tmp由 upstart 脚本完成。每次安装时,/etc/init/mounted-tmp.confupstart 都会运行该脚本。实际上,这意味着每次启动时。/tmp

该脚本大致执行以下操作:如果文件存在的时间/tmp超过$TMPTIME几天,它将被删除。

的默认值为0,这意味着删除$TMPTIME中的所有文件和目录。是在 中定义的环境变量。/tmp$TMPTIME/etc/default/rcS

答案2

每次启动时默认清除该目录,因为TMPTIME默认为0。

您可以在此处更改以下文件中的时间:

/etc/default/rcS

TMPTIME表示在几天内应该清除 tmp 目录的频率

答案3

我正在 Ubuntu 16.10 上检查这一点。我可以确认编辑 /etc/default/rcS 不再有任何效果,并且无论您在 tmp 文件中输入什么,重新启动后 tmp 中的文件都会被清除。正如其他人提到的,tmpreaper 不再使用。

我认为正确的答案是 Ubuntu 16.10 有一个新的设置。有一个文件夹 /etc/tmpfiles.d,在手册页“tmpfiles.d”中记录。在该文件夹中,应该放置一个配置文件来控制是否要删除 /tmp。这就是我所做的,以阻止重新启动删除 /tmp 中的文件,除非它们是 20 天前的文件:

#/etc/tmpfiles.d/tmp.conf

d /tmp 1777 root root 20d

如果您不想删除文件,请将“20d”替换为“-”。这是我最大的努力,该手册页的细节几乎令人费解。

新设置的优点是,即使系统未重新启动,文件清理程序仍可运行(就像始终在线的服务器一样)。我认为这是一大优点。

答案4

在 Ubuntu 14.04 中,这是通过tmpreaper,由 cron 每日调用(来自)。该程序可通过和/etc/cron.daily进行配置。/etc/default/rcS/etc/tmpreaper.conf

相关内容