如何自定义Debian清理策略
导读:自定义 Debian 清理策略 一 策略框架与频率建议 建议将清理分为日常、每周、每月三层,并优先使用系统自带机制(如 systemd-tmpfiles、logrotate、包管理器)而非粗暴的 rm -rf。 参考频率与动作: 日常:...
自定义 Debian 清理策略
一 策略框架与频率建议
- 建议将清理分为日常、每周、每月三层,并优先使用系统自带机制(如 systemd-tmpfiles、logrotate、包管理器)而非粗暴的 rm -rf。
- 参考频率与动作:
- 日常:清理 APT 缓存与过期包、处理 journald 日志保留策略(如保留最近 7–30 天)。
- 每周:清理 /tmp 与 /var/tmp 中超期文件、清理旧日志归档、检查并清理大文件。
- 每月:清理 旧内核、移除不再需要的依赖与孤立包、复核临时目录策略与日志轮转配置。
- 自动化方式:使用 cron 或 systemd timer 执行脚本;桌面环境可配合 unattended-upgrades 做无人值守更新与基础维护。
二 核心清理项与推荐做法
- APT 与软件包
- 清理动作:
- 删除全部已下载包文件:sudo apt clean
- 仅删除旧版本包:sudo apt autoclean
- 移除不再需要的依赖:sudo apt autoremove --purge
- 清理残留配置(状态为 rc 的包):dpkg --list | grep “^rc” | cut -d " " -f 3 | xargs sudo dpkg --purge
- 查找并删除孤立包(需安装 deborphan):deborphan | xargs sudo apt-get remove --purge
- 频率建议:日常或每周执行一次(生产环境建议先 autoclean 再 autoremove)。
- 清理动作:
- 日志与 Journald
- 使用 logrotate 管理 /var/log 的轮转与压缩(如每日轮转、保留 7 天、压缩旧日志)。
- 使用 journalctl 控制系统日志保留时间(如:sudo journalctl --vacuum-time=7d;紧急回收可用 1d)。
- 临时文件与缓存
- 优先使用 systemd-tmpfiles 管理 /tmp 与 /var/tmp(默认常见为 10d/30d 保留),而非直接 rm -rf。
- 应急或补充清理可用 find(如:find /tmp -type f -atime +7 -delete),注意避免删除正在使用的锁文件/套接字。
- 旧内核与镜像
- 列出内核:apt list --installed | grep linux-image
- 安全移除旧版本(保留当前运行版本):sudo apt remove --purge linux-image- linux-headers-。
三 自动化与定时执行
- 使用 systemd timer(推荐)
- 创建清理服务单元(/etc/systemd/system/cleanup.service):
[Unit] Description=Custom system cleanup After=network.target [Service] Type=oneshot ExecStart=/usr/local/bin/cleanup.sh - 创建定时器(/etc/systemd/system/cleanup.timer):
[Unit] Description=Run cleanup daily Requires=cleanup.service [Timer] OnCalendar=daily Persistent=true [Install] WantedBy=timers.target - 启用与查看:
sudo systemctl daemon-reload sudo systemctl enable --now cleanup.timer systemctl list-timers | grep cleanup
- 创建清理服务单元(/etc/systemd/system/cleanup.service):
- 使用 cron
- 示例(每日 3:00 清理 /tmp 中 7 天未访问文件):
0 3 * * * /usr/bin/find /tmp -type f -atime +7 -delete - 示例(每周日 2:00 清理 journal 保留 7 天):
0 2 * * 0 /usr/bin/journalctl --vacuum-time=7d
- 示例(每日 3:00 清理 /tmp 中 7 天未访问文件):
- 无人值守维护
- 安装并启用 unattended-upgrades,可自动安装安全更新并在升级后执行 autoremove/autoclean(按需配置)。
四 关键配置文件与位置
- APT 缓存目录:/var/cache/apt/archives/(clean/autoclean 作用于此)
- 日志轮转:/etc/logrotate.conf 与 /etc/logrotate.d/(定义轮转周期、保留份数、压缩等)
- 临时文件策略:/usr/lib/tmpfiles.d/tmp.conf 或 /etc/tmpfiles.d/*.conf(如:v /tmp 1777 root root 10d;v /var/tmp 1777 root root 30d)
- systemd 清理服务与定时器:systemd-tmpfiles-clean.service/.timer(默认每日运行,可用 systemctl list-timers 查看)
- 旧内核列表:apt list --installed | grep linux-image(配合 apt remove/purge 使用)
五 安全与验证
- 风险提示
- 清理 /tmp 前确认无关键服务正在使用(如数据库套接字、应用锁文件);优先用 systemd-tmpfiles 而非 rm -rf。
- 清理 journald 时避免过短的保留期(如 1d)以免影响排障;生产建议 7–30 天。
- 清理 旧内核 务必保留当前运行版本,避免无法启动。
- 验证与回滚
- 事前评估空间:df -h、du -sh /var/log /var/cache/apt /tmp
- 事后复核:journalctl -u systemd-tmpfiles-clean、systemctl list-timers、检查关键服务状态
- 重要变更前先备份数据与关键配置,变更后在维护窗口内观察。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何自定义Debian清理策略
本文地址: https://pptw.com/jishu/772490.html
