#!/bin/bash # 确保脚本是以 root 权限运行 if [ "$EUID" -ne 0 ]; then echo "请使用 sudo 或 root 权限运行此脚本!" exit 1 fi echo "==========================================" echo " 开始执行 Ubuntu 20.04 深度清理 " echo "==========================================" # 1. 软件包管理器清理 echo "--> 正在清理软件包缓存..." apt-get update -y apt-get autoremove --purge -y # 卸载不再需要的孤立软件包及其配置文件 echo "--> 正在清除旧版本的 snap 包..." # Ubuntu 20.04 默认大量使用 snap,这里只保留最新的版本,删除旧版本 snap list --all | awk '/disabled/{print $1, $3}' | while read snapname revision; do snap remove "$snapname" --revision="$revision" done # 2. 日志文件清理 echo "--> 正在清理系统日志文件..." # 只保留最近 3 天的 journald 日志(可根据需要调整天数) journalctl --vacuum-time=3d # 【可选/半风险】如果想直接清空 /var/log 下的大型历史日志文件,可以取消下面行的注释 # find /var/log -type f -regex '.*\.pt_BR\.UTF-8.*\|.*\.gz\|.*\.1' -delete # 3. 缓存与临时文件清理 echo "--> 正在清理系统缓存与临时文件..." rm -rf /var/tmp/* find /tmp -type f -atime +2 -delete # 删除 2 天前未访问的临时文件 # 清理当前 root 用户和普通用户的缩略图缓存 rm -rf ~/.cache/thumbnails/* rm -rf /home/*/.cache/thumbnails/* # 4. 【可选】Docker 深度清理 # 如果你不再使用某些 Docker 镜像或容器,可以取消下面几行的注释 # echo "--> 正在深度清理 Docker 残留..." # docker system prune -a --volumes -f # 警告:这会删除所有未运行的容器、未使用的镜像和卷! # 5. 清理孤立的旧内核 (Ubuntu 20.04 通常通过 autoremove 就能处理,这里做双重保险) echo "--> 正在检查并清理旧内核..." current_kernel=$(uname -r) dpkg --list | grep -E 'linux-image|linux-headers' | awk '{print $2}' | grep -v "$current_kernel" | grep -v "linux-image-generic" | grep -v "linux-headers-generic" | xargs apt-get -y purge # 6. 刷新磁盘空间查看 echo "==========================================" echo " 清理完成! " echo "==========================================" df -h