麒麟OS可通过五种方式实现无人值守磁盘清理:一、cron定时执行自定义脚本;二、systemd-tmpfiles轮转规则;三、tmpreaper按时间阈值清理;四、tmpfs挂载/tmp实现重启清空;五、logrotate管控日志增长。

如果您希望麒麟操作系统在无人值守状态下定期释放磁盘空间、清除临时文件与缓存,避免手动干预并维持系统长期运行的整洁性,则需借助系统级定时任务与预设清理规则协同工作。以下是实现此目标的具体操作:
一、使用cron定时执行自定义清理脚本
该方法基于Linux标准计划任务服务,完全可控、无需图形界面依赖,适用于所有麒麟OS版本(V10 SP1及以上),可精准指定清理目标、时间与保留策略。
1、新建清理脚本文件,例如:/home/username/bin/auto_clean.sh。
2、向脚本中写入以下内容:
#!/bin/bash
find /tmp -type f -mtime +7 -delete
find ~/.cache -type f -mtime +30 -delete
rm -rf ~/.local/share/Trash/files/*
rm -rf ~/.local/share/Trash/info/*
3、赋予脚本执行权限:chmod +x /home/username/bin/auto_clean.sh。
4、编辑当前用户crontab:crontab -e。
5、添加定时规则,例如每天凌晨3点执行:0 3 * * * /home/username/bin/auto_clean.sh >/dev/null 2>&1。
二、配置systemd-tmpfiles轮转清理规则
systemd-tmpfiles是银河麒麟V10默认集成的服务,依据配置文件定义的路径、权限、生存周期等条件,自动管理/tmp、/var/tmp等目录中的文件生命周期,无需额外安装组件,且与系统启动流程深度整合。
1、确认系统已启用tmpfiles服务:systemctl is-enabled systemd-tmpfiles-setup.service,返回enabled表示已激活。
2、查看默认规则位置:ls /usr/lib/tmpfiles.d/*.conf,常见规则文件包括systemd.conf、base.conf等。
3、创建自定义清理策略(例如:清理/var/tmp中7天未访问的文件):echo 'v /var/tmp 1777 root root 7d' | sudo tee /etc/tmpfiles.d/clean-vartmp.conf。
4、立即应用新规则:sudo systemd-tmpfiles --create,该命令将按规则执行一次即时清理。
三、部署tmpreaper实现基于时间阈值的自动清理
tmpreaper是一款专为/tmp目录设计的轻量级清理工具,支持精确到小时、天、周的时间粒度控制,并可跳过正在被进程使用的文件,安全性高,适用于对清理行为可控性要求较高的场景。
1、安装tmpreaper:sudo apt update && sudo apt install tmpreaper。
2、配置清理周期(例如:清除/tmp下超过24小时的文件):sudo tmpreaper 24h /tmp。
3、将该命令写入root用户的crontab,实现每日凌晨两点自动执行:echo '0 2 * * * /usr/bin/tmpreaper 24h /tmp' | sudo tee -a /var/spool/cron/crontabs/root。
4、重启cron服务使定时任务生效:sudo systemctl restart cron。
四、启用tmpfs挂载/tmp实现重启自动清空
该方式通过内存文件系统替代物理磁盘上的/tmp目录,在系统重启时自然清空全部内容,不产生磁盘I/O负担,适合对临时文件生命周期要求严格且无跨重启持久化需求的环境。
1、以root身份编辑fstab文件:sudo nano /etc/fstab。
2、添加以下行(确保不破坏原有条目):tmpfs /tmp tmpfs defaults,noatime,nosuid,nodev,size=2G 0 0。
3、重新挂载/tmp目录:sudo mount -o remount /tmp。
4、验证挂载状态:df -hT /tmp,输出类型应为tmpfs。
五、配置logrotate限制日志类临时文件增长
logrotate用于管理系统日志轮转,防止/var/log下syslog、kern.log等日志文件无限膨胀,通过压缩、归档与删除旧日志实现空间可控,是清理日志型临时文件的核心机制。
1、检查logrotate是否已安装并启用:dpkg -l | grep logrotate,若未安装则执行sudo apt install logrotate。
2、编辑主配置文件:sudo nano /etc/logrotate.conf,确认包含include /etc/logrotate.d行。
3、为关键日志创建专用轮转规则:sudo nano /etc/logrotate.d/syslog-custom。
4、填入以下内容:/var/log/syslog /var/log/kern.log { daily missingok rotate 7 compress delaycompress notifempty create 644 syslog syslog }。


















