麒麟OS开机自动磁盘清理应优先使用systemd服务,因其在系统启动早期、无需用户登录即可可靠执行;其次可选cron @reboot(依赖cron启动完成)或rc.local(需启用rc-local服务并赋权)。

您需要让麒麟OS在每次开机时自动执行磁盘清理任务,避免手动干预、防止垃圾文件持续堆积导致系统变慢或磁盘空间告急,这要求任务能随系统启动可靠触发,且不依赖用户登录会话。
用systemd服务实现开机即清理
该方式最稳定,适用于所有麒麟OS V10 SP1及以上版本,服务在系统启动早期就绪,无需图形界面,清理动作在用户登录前完成。
第一步:创建清理脚本文件,路径必须可被root执行:【/usr/local/bin/boot-clean.sh】
第二步:向脚本写入实际清理命令,例如清空临时目录和回收站:
#!/bin/bash
find /tmp -type f -mtime +1 -delete 2>/dev/null
rm -rf ~/.local/share/Trash/files/* ~/.local/share/Trash/info/* 2>/dev/null
journalctl --vacuum-size=200M >/dev/null 2>&1
第三步:赋予执行权限:sudo chmod +x /usr/local/bin/boot-clean.sh
第四步:创建systemd服务单元文件:【/etc/systemd/system/boot-clean.service】
第五步:填入以下内容(注意User=root和Type=oneshot不可省略):
[Unit]
Description=Run disk cleanup at boot
After=local-fs.target
[Service]
Type=oneshot
User=root
ExecStart=/usr/local/bin/boot-clean.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
第六步:启用服务:sudo systemctl daemon-reload && sudo systemctl enable boot-clean.service
用cron @reboot触发清理
如果已习惯使用crontab管理定时任务,可用@reboot语法让脚本在每次系统启动后立即运行,适合快速部署但依赖cron守护进程启动完成。
方法一:为root用户配置开机清理
执行sudo crontab -e,新增一行:【@reboot /usr/local/bin/boot-clean.sh】
方法二:为当前用户配置(仅当桌面会话启动后才执行)
执行crontab -e,新增一行:@reboot sleep 30 && /home/$(whoami)/bin/user-clean.sh
注意:用户级@reboot需等待桌面环境加载完毕,sleep 30是为避开GNOME/Nemo等组件初始化冲突。
通过修改/etc/rc.local开机执行
这是传统Linux兼容方式,在systemd环境下需先启用rc-local服务,适合已有rc.local维护习惯的管理员。
第一步:确认rc-local服务存在且可启用:sudo systemctl list-unit-files | grep rc-local
第二步:若返回disabled,执行sudo systemctl enable rc-local
第三步:编辑/etc/rc.local,在exit 0前插入清理命令:
/usr/local/bin/boot-clean.sh
第四步:赋予rc.local执行权限:sudo chmod +x /etc/rc.local
这一步必须做,否则rc.local会被systemd跳过执行。

















