← 返回
磁盘清理
清 apt 缓存、无用依赖、journal 日志、/tmp 陈旧文件、Docker 悬空镜像。不碰 /home 与业务目录。
需要 root
一键执行
curl -fsSL https://www.moiu.cn/scripts/disk-cleanup.sh | bash脚本源码
#!/usr/bin/env bash
# 磁盘清理
#
# 清 apt 缓存、无用依赖、journal 日志、/tmp 陈旧文件、
# Docker 悬空镜像与构建缓存。前后各报一次磁盘占用。
# ❗ 不碰 /home,也不碰任何业务目录。
set -e
# 需要 root:下面的系统级改动都直接执行,不再逐条 sudo
if [ "$(id -u)" -ne 0 ]; then
echo '[!] 这个脚本需要 root 权限,请用 sudo 重新运行:'
echo ' curl -fsSL 脚本地址 | sudo bash'
echo ' 或已经下载到本地:sudo bash 本文件'
exit 1
fi
echo '====== 磁盘清理 ======'
echo ''
echo '--- 清理前 ---'
df -h / | awk 'NR == 1 || $NF == "/"'
if command -v apt-get >/dev/null 2>&1; then
echo ''
echo '[*] 清理 apt 缓存与无用依赖...'
apt-get autoremove -y
apt-get clean
fi
if command -v journalctl >/dev/null 2>&1; then
echo ''
echo '[*] 把 journal 日志压到 200M...'
journalctl --vacuum-size=200M || true
fi
echo ''
echo '[*] 清理 /tmp 里 7 天没动过的东西...'
find /tmp -mindepth 1 -mtime +7 -exec rm -rf {} + 2>/dev/null || true
if command -v docker >/dev/null 2>&1; then
echo ''
echo '[*] 清理 Docker 悬空镜像与构建缓存...'
docker image prune -f
docker builder prune -f
fi
echo ''
echo '--- 清理后 ---'
df -h / | awk 'NR == 1 || $NF == "/"'
