CentOS-7中tmp目录的清理规则

艺帆风顺 发布于 2025-04-03 10 次阅读


因为目前业务当中遇到程序启动之后自动在/tmp目录下生成一个tomcat.1234546854的文件,有时候程序在上传文件的时候会读取一下这个目录,但是如果服务很久(超过十天)没发布过,那么这个目录可能就被自动清理了,然后导致服务报错。然后在网上看到了如下内容:

CentOS6 以下系统(含)使用 watchtmp + cron 来实现定时清理临时文件的效果,这点在 CentOS7 发生了变化,在 CentOS7 下,系统使用 systemd 管理易变与临时文件,与之相关的系统服务有 3 个:

systemd-tmpfiles-setup.service :Create Volatile Files and Directoriessystemd-tmpfiles-setup-dev.service:Create static device nodes in /devsystemd-tmpfiles-clean.service :Cleanup of Temporary Directories

相关的配置文件也有 3 个地方:

/etc/tmpfiles.d/*.conf/run/tmpfiles.d/*.conf/usr/lib/tmpfiles.d/*.conf

/tmp 目录的清理规则主要取决于 / usr/lib/tmpfiles.d/tmp.conf 文件的设定,默认的配置内容为:

v /tmp 1777 root root 10d v /var/tmp 1777 root root 30d x /tmp/systemd-private-%b-*X /tmp/systemd-private-%b-*/tmpx /var/tmp/systemd-private-%b-*X /var/tmp/systemd-private-%b-*/tmp

我们可以配置这个文件,比如你不想让系统自动清理 “/tmp下以tomcat` 开头的目录,那么增加下面这条内容到配置文件中即可:

x /tmp/tomcat.*

参考:

  • tmpfiles.d 中文手册(opens new window)

  • http://t.cn/AiO1BSKv

版权声明:本文内容来自个人博客:二丫讲梵,遵循CC 4.0 BY-SA版权协议上原文接及本声明。本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。原文链接:https://wiki.eryajf.net/pages/3142.html如有涉及到侵权,请联系,将立即予以删除处理。在此特别鸣谢原作者:二丫讲梵的创作,Powered by 二丫讲梵。本文已获原作者授权发布。此篇文章的所有版权归原作者所有,与本公众号无关,商业转载建议请联系原作者,非商业转载请注明出处。