![/tmp 目录是如何清理的?](https://linux22.com/image/807640/%2Ftmp%20%E7%9B%AE%E5%BD%95%E6%98%AF%E5%A6%82%E4%BD%95%E6%B8%85%E7%90%86%E7%9A%84%EF%BC%9F.png)
目录是如何/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.conf
upstart 都会运行该脚本。实际上,这意味着每次启动时。/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