kba*_*kba 192
这取决于你的分布。在某些系统上,它仅在启动时被删除,而其他系统则使用 cronjobs 运行删除超过n小时的项目。
tmpreaperwhich 被调用/etc/cron.daily,通过/etc/default/rcS和配置/etc/tmpreaper.conf。(归功于此答案)。tmpfiles.d. (归功于此答案)。/etc/default/rcS)。/etc/cron.daily/tmpwatchRHEL7/RHEL8 和 RedHat-like with systemd 它配置在 中/usr/lib/tmpfiles.d/tmp.conf,由 调用systemd-tmpfiles-clean.service)。/etc/conf.d/bootmisc。cjc*_*cjc 27
在 CentOS(我假设是 Fedora)上,/etc/cron.daily 中有一个名为tmpwatch. 这将运行/usr/sbin/tmpwatch,它将删除在指定的小时数内未被访问的文件,即默认行为是检查atime文件以评估它是否最近被使用过。
http://linux.die.net/man/8/tmpwatch
其他发行版(和安装)可能将 /tmp 挂载为 tmpfs,这是一个内存文件系统。这将在启动时清除。
小智 16
在Ubuntu 11.10我使用的,有一个暴发户的脚本/etc/init/mounted-tmp.conf。它的开头是这样说的:
# mounted-tmp - Clean /tmp directory
#
# Cleans up the /tmp directory when it does not exist as a temporary
# filesystem.
description "Clean /tmp directory"
start on (mounted MOUNTPOINT=/tmp) or (mounted MOUNTPOINT=/usr)
Run Code Online (Sandbox Code Playgroud)
您可以阅读更多详细信息,但通常/tmp在安装或/usr安装时进行清洁。这在启动时经常发生,因此/tmp每次启动时都会进行此清理。
在/etc/default/rcS你已经TMPTIME设置,它在上面的初始化脚本中find用于在其末尾提供两个命令 - 基本上根据它们的时间(修改,更改,访问)控制文件删除。
从 Fedora 18 开始,默认/tmp安装在tmpfs(即 RAM)上,因此在断电时擦除。
此行为可以通过发出systemctl mask tmp.mount和重新启动来禁用(并通过发出systemctl unmask tmp.mount和重新启动重新启用),然后/tmp将安装在/文件系统上并可以通过/usr/lib/tmpfiles.d/tmp.conf设置进行控制。
请参阅http://fedoraproject.org/wiki/Features/tmp-on-tmpfs以及man tmpfiles.d有关每种情况的更多详细信息。
小智 6
在 RHEL 6.2 中,如果 10 天内没有访问过 /tmp 中的文件,tmpwatch 将删除它们。
文件 /etc/cron.daily/tmpwatch 定义了调用 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_*' 10d /tmp
Run Code Online (Sandbox Code Playgroud)
-x 参数是要排除的文件。倒数第二个参数是上次访问时间后等待的时间。最后一个参数是要检查的目录。
小智 5
在 openSUSE 13.2 上,可以使用 sysconfig 中的以下变量来控制清除行为。
MAX_DAYS_IN_TMPMAX_DAYS_IN_LONG_TMPTMP_DIRS_TO_CLEARLONG_TMP_DIRS_TO_CLEAROWNER_TO_KEEP_IN_TMPCLEAR_TMP_DIRS_AT_BOOTUP您可以通过以下方式修改这些变量(每个变量的用法也可以在那里找到)
/etc/sysconfig/cron在命令行中手动编辑文件。