一、默认清理规则
-
清理周期
。该规则由
/tmp
目录默认每10天自动清理一次未使用的文件,而/var/tmp
目录则为30天/usr/lib/tmpfiles.d/tmp.conf
文件定义:v /tmp 1777 root root 10d # /tmp目录清理周期 v /var/tmp 1777 root root 30d # /var/tmp目录清理周期
v
表示创建或验证目录权限和属性;10d
表示文件最后一次访问时间超过10天即被删除
-
排除规则
系统默认跳过以下目录的清理:x /tmp/systemd-private-%b-* # 排除systemd私有临时目录 x /tmp/tomcat.* # 手动添加以排除Tomcat相关目录(需自定义)
x
表示排除匹配模式的文件或目录
二、配置管理
-
主配置文件
核心配置文件为/usr/lib/tmpfiles.d/tmp.conf
,修改后需重启systemd-tmpfiles-clean.service
生效:systemctl restart systemd-tmpfiles-clean.service
-
自定义清理规则
- 延长清理周期:将
10d
改为30d
可让/tmp
目录30天清理一次 - 排除特定文件:添加
x /tmp/custom_*
可跳过以custom_
开头的文件
- 延长清理周期:将
-
优先级规则
systemd按以下顺序加载配置(后者覆盖前者):/usr/lib/tmpfiles.d/*.conf
(系统默认)/run/tmpfiles.d/*.conf
(运行时生成)/etc/tmpfiles.d/*.conf
(用户自定义)
三、执行机制
-
服务触发时机
- 定时任务:每天执行一次,具体时间由
systemd-tmpfiles-clean.timer
定义 - 启动后触发:系统启动15分钟后首次执行
- 定时任务:每天执行一次,具体时间由
-
手动立即清理
执行以下命令强制清理:systemd-tmpfiles --clean # 根据配置规则立即清理
四、注意事项
-
关键目录保护
系统服务(如MySQL、Docker)可能使用/tmp
存放临时文件,避免误删导致服务异常。可通过x /tmp/mysql*
排除相关目录 -
权限与安全
/tmp
目录权限应为1777
(粘滞位),防止用户删除他人文件- 使用
ls -l /tmp
检查权限,异常时通过chmod 1777 /tmp
修复。
-
日志监控
清理操作记录在journalctl
中,排查问题时执行:journalctl -u systemd-tmpfiles-clean.service