CentOS/RHEL 6,7:为什么 /tmp 目录中的文件会被定期删除

在 CentOS/RHEL 7 中,tmpfiles.d 通过删除未使用的文件来清理 /tmp 或者 /var/tmp。
这个函数在 CentOS/RHEL 6 中被称为“tmpwatch”,由 crond 调用,但现在在 CentOS/RHEL 7 上由 systemd 的定时器实现。

/tmp 目录的主要用途是在安装操作系统或者软件时临时存储文件。
如果 /tmp 目录中的任何文件有一段时间没有被访问,它们将被自动从系统中删除。
请在下面找到负责删除 /tmp 目录中文件的配置。

对于 CentOS/RHEL 6

  1. 系统默认安装并启动的cronjob,运行tmpwatch命令,每分钟扫描一次/tmp中的所有内容。
    tmpwatch的cronjob设置在/etc/cron.daily/tmpwatch
# cat /etc/cron.daily/tmpwatch
#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
	-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
	-X '/tmp/hsperfdata_*' -X '/tmp/.hdb*lock' -X '/tmp/.sapstartsrv*.log' \
	-X '/tmp/pymp-*' 10d /tmp
  1. 我们可以在其手册页上找到有关 tmpwatch 的更多信息。
# man tmpwatch
www. On IT Road .com

对于 CentOS/RHEL 7

  1. 在 CentOS/RHEL 7 的情况下,systemd-tmpfiles 会定期清理 /tmp 目录中的文件。
    清理 /tmp 目录的设置在 /usr/lib/tmpfiles.d/tmp.conf 中。

  2. 下面是默认的配置文件/usr/lib/tmpfiles.d/tmp.conf。
    如我们所见,目录 /tmp 和 /var/tmp 计划分别每 10 天和 30 天清理一次。

# cat /usr/lib/tmpfiles.d/tmp.conf
# Clear tmp directories separately, to make them easier to override
v /tmp 1777 root root 10d
v /var/tmp 1777 root root 30d
# Exclude namespace mountpoints created with PrivateTmp=yes
x /tmp/systemd-private-%b-*
X /tmp/systemd-private-%b-*/tmp
x /var/tmp/systemd-private-%b-*
X /var/tmp/systemd-private-%b-*/tmp
  1. 有关 systemd-tmpfiles 的更多信息,请参阅手册页:
# man systemd-tmpfiles
# man tmpfiles.d
日期:2020-09-17 00:11:56 来源:oir作者:oir