今天,遇到 Linux 磁盘满了的问题,查找系统中的大文件,原来 /tmp
目录下有很多临时文件,占用了几十G的空间。
操作系统会自动删除/tmp
下的文件,但是何时删除,没有留意。查了下资料,原来不同发行版本的操作系统,删除 /tmp
下的文件的时间是不一样的。
- 在类 debian 系统中,在系统启动时删除(配置文件在
/etc/default/rcS
) - 在类 RedHat 的系统中,按照时间顺序删除(在RHEL6 中,由
/etc/cron.daily/tmpwatch
删除;RHEL7和其他类RedHat系统,由systemd-tmpfiles-clean.service
删除,对应的配置文件/usr/lib/tmpfiles.d/tmp.conf
) - 在 Gentoo 上,由
/etc/conf.d/bootmisc
删除
我们看下 Ubuntu 上的 /etc/default/rcS
,文件里面有如下配置,TMPTIME
为时间参数,单位为天,系统启动时,会删除创建时间早于 TMPTIME
天之前的文件。
# delete files in /tmp during boot older than x days.
# '0' means always, -1 or 'infinite' disables the feature
#TMPTIME=0
再看下 CentOS 7 上的 /usr/lib/tmpfiles.d/tmp.conf
,通过配置上面的注释和查看帮助文档可知,系统会删除 /tmp
下面创建时间超过10天的文件和创建时间超过30天 /var/tmp
下的文件
# See tmpfiles.d(5) for details
# 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
网友评论