编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

运维老司机亲授:5步搞定Linux临时文件自动清理,系统瘦身避坑!

wxchong 2025-05-02 13:56:11 开源技术 2 ℃ 0 评论

运维老司机亲授:5步搞定Linux临时文件自动清理,系统瘦身还能避坑!


一、这个服务到底管什么?


systemd-tmpfiles-clean 是 Linux 系统中专门负责“清理垃圾”的隐形管家。它通过定时任务,自动扫描并删除 /tmp、/var/tmp 等目录中的过期临时文件(比如缓存、日志残留),避免磁盘被“撑爆”。

举个真实案例:某企业服务器因未及时清理临时文件,导致 /tmp 目录占用 50GB,系统卡死!而启用该服务后,每天自动清理超 10 天的文件,磁盘利用率稳定在 80% 以下。


二、它的运行原理是什么?


1 定时触发:依赖
systemd-tmpfiles-clean.timer 计时器,默认每天执行一次。

2 规则驱动:根据配置文件中的“寿命”标记(如 10d 表示保留 10 天),按需清理。

3 优先级分层:

  • 系统级配置:/usr/lib/tmpfiles.d/*.conf(软件自带,禁止修改)
  • 运行时配置:/run/tmpfiles.d/*.conf(临时生效)
  • 用户级配置:/etc/tmpfiles.d/*.conf(运维必改!)

三、手把手教你配置!


(运维必看!避免删错关键文件)

场景 1:自定义清理目录
假设需要清理
/data/cache 目录中超过 7 天的文件:

# 创建配置文件  
sudo vim /etc/tmpfiles.d/mycache.conf  
# 添加内容(q 表示按时间清理,7d 表示 7 天)  
q /data/cache 1777 root root 7d  

验证配置:

systemd-tmpfiles --clean /etc/tmpfiles.d/mycache.conf  

无报错即生效。

场景 2:排除敏感目录
若需保留
/tmp/secret 下的文件,添加排除规则:

x /tmp/secret  

x 表示跳过该路径及子内容,X 仅跳过自身)

场景 3:调整清理频率
修改计时器触发时间(比如每 6 小时清理一次):

sudo vim /usr/lib/systemd/system/systemd-tmpfiles-clean.timer  
# 修改参数  
OnUnitActiveSec=6h  
# 重载配置  
systemctl daemon-reload  
systemctl restart systemd-tmpfiles-clean.timer  

(谨慎调整!高频清理可能影响业务)


四、避坑指南!

  • 别删系统关键文件:默认配置已排除 /tmp/systemd-private-*(服务私有目录),勿随意覆盖。
  • 手动紧急清理:临时用 find /tmp -type f -mtime +10 -delete,但需注意文件是否被进程占用。
  • 日志监控:通过 journalctl -u systemd-tmpfiles-clean.service 查看清理记录,定位异常。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表