使用方式
创建
nano update.sh
运行
chmod +x update.sh
./update.sh
内容
#!/bin/bash
echo "=================================="
echo " Ubuntu 深度维护开始"
echo "=================================="
# -----------------------------
# 修复系统问题
# -----------------------------
sudo dpkg --configure -a
sudo apt --fix-broken install -y
# -----------------------------
# 更新系统
# -----------------------------
sudo apt update
sudo apt full-upgrade -y
# -----------------------------
# 清理无用依赖
# -----------------------------
sudo apt autoremove --purge -y
sudo apt autoclean -y
sudo apt clean
# -----------------------------
# 清理旧 Linux 内核
# 保留当前运行内核
# -----------------------------
current_kernel=$(uname -r)
echo "当前内核: $current_kernel"
dpkg --list | grep linux-image | awk '{print $2}' | grep -v "$current_kernel" | while read kernel
do
echo "删除旧内核: $kernel"
sudo apt purge -y "$kernel"
done
# -----------------------------
# 清理 systemd 日志
# 保留最近 7 天
# -----------------------------
sudo journalctl --vacuum-time=7d
# 或限制最大日志大小
# sudo journalctl --vacuum-size=500M
# -----------------------------
# 清理 crash dump
# -----------------------------
sudo rm -rf /var/crash/*
# -----------------------------
# 清理 tmp 临时文件
# -----------------------------
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
# -----------------------------
# Docker 清理(如果安装了)
# -----------------------------
if command -v docker >/dev/null 2>&1; then
echo "清理 Docker..."
docker system prune -af --volumes
fi
# -----------------------------
# Snap 清理(如果安装了)
# -----------------------------
if command -v snap >/dev/null 2>&1; then
sudo snap set system refresh.retain=2
snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
sudo snap remove "$snapname" --revision="$revision"
done
fi
# -----------------------------
# 清理缩略图缓存
# -----------------------------
rm -rf ~/.cache/thumbnails/*
# -----------------------------
# 显示磁盘使用情况
# -----------------------------
echo "=================================="
df -h
echo "=================================="
# 是否需要重启
if [ -f /var/run/reboot-required ]; then
echo "⚠️ 系统需要重启"
else
echo "✅ 无需重启"
fi
echo "=================================="
echo " 深度维护完成"
echo "=================================="