我正在把各种文件放在/ tmp中,我想知道删除它们的规则是什么?
我正在想象不同的发行版,我对Ubuntu和Fedora桌面版本特别感兴趣。
但是,一个很好的普遍的发现方式将是一件好事。
更好的办法是控制它的一个很好的一般方法! (类似于“凌晨3点每天”,删除超过60天的任何/ tmp文件,但不要在重启时清除目录)
这取决于你的分布。 在某些系统上,只有在启动时才会被删除,其他的则有cronjobs在删除n个小时以前的项目。
/etc/default/rcS
中定义)。 /etc/cron.daily/tmpwatch
; RHEL7和RedHat类似于systemd,它在/usr/lib/tmpfiles.d/tmp.conf
configuration,由systemd-tmpfiles-clean.service
调用, systemd-tmpfiles-clean.service
)。 /etc/conf.d/bootmisc
。 在CentOS上(我假设Fedora),在/etc/cron.daily中有一个叫做tmpwatch
。 这将运行/usr/sbin/tmpwatch
,它将删除在指定小时数内未被访问的文件,即缺省行为是检查文件的atime
是否最近被使用。
http://linux.die.net/man/8/tmpwatch
其他发行版(和安装)可能会将/ tmp挂载为tmpfs,这是一个内存中的文件系统。 这将在启动时被清除。
在我使用的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)
你可以阅读更多的细节,但是一般来说/tmp
在挂载或者/usr
被挂载时被清除。 这经常在启动时发生,所以这个/tmp
清理在每次启动时运行。
在/etc/default/rcS
您已经设置了TMPTIME
,在上面的init脚本中使用TMPTIME
来在其末尾提供两个find
命令 – 基本上根据它们的时间(修改,更改,访问)控制文件删除。
在RHEL 6.2上,如果tmpwatch中的文件在10天内没有被访问,它们将被删除。
文件/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
-x参数是要排除的文件。 倒数第二个参数是最后访问时间之后的等待时间。 最后一个参数是要检查的目录。
从Fedora 18开始,默认情况下/tmp
被安装在tmpfs
(即RAM)上,因此在closures时被擦除。
这个行为可以通过发出systemctl mask tmp.mount
和reboot来禁用(并且可以通过发出systemctl mask tmp.mount
和reboot来重新启用),然后/tmp
将被挂载到/
filesystem,并且可以被/usr/lib/tmpfiles.d/tmp.conf
设置。
有关每种情况的更多详细信息,请参阅http://fedoraproject.org/wiki/Features/tmp-on-tmpfs和man tmpfiles.d
。
在openSUSE 13.2上,可以使用sysconfig中的以下variables来控制清除行为。
MAX_DAYS_IN_TMP
MAX_DAYS_IN_LONG_TMP
TMP_DIRS_TO_CLEAR
LONG_TMP_DIRS_TO_CLEAR
OWNER_TO_KEEP_IN_TMP
CLEAR_TMP_DIRS_AT_BOOTUP
你可以修改这些variables(每个variables的用法也可以在那里find)
/etc/sysconfig/cron
文件。