磁盘空间不足|如何安全清理以释放磁盘空间(开源+节流)

背景:

最近往数据库里存的东西有点多,磁盘不够用

查看磁盘使用情况

df -h

/dev/sda5(根目录 /) 已使用 92%

咱们来开源节流

目录

背景:

一、开源

二、节流

[1.查找 大于 500MB 的文件:](#1.查找 大于 500MB 的文件:)

[1. Snap 缓存文件](#1. Snap 缓存文件)

[2. 旧的 MySQL 日志和临时文件](#2. 旧的 MySQL 日志和临时文件)

[3. 旧的下载文件](#3. 旧的下载文件)

[4. Ubuntu ISO 文件](#4. Ubuntu ISO 文件)

[⚠️ 不要删除的文件](#⚠️ 不要删除的文件)

[2. 清理无用的 udev 规则](#2. 清理无用的 udev 规则)

[3. 清理 journalctl 日志](#3. 清理 journalctl 日志)

[4. 清理 APT 缓存](#4. 清理 APT 缓存)

[5. 清理 Snap 旧版本](#5. 清理 Snap 旧版本)

[6. 释放缓存](#6. 释放缓存)


一、开源

先虚拟机关机(我的这个只是演示,后台还在运行命令暂时管不了)

在设置里面调节磁盘大小

点碎片整理

还有选择扩展磁盘容量

之后的事就交给另一个博主吧,我不想当复读机

【2023年全新保姆级教程】解决Ubuntu文件系统磁盘空间不足low disk space on filesystem root-CSDN博客

二、节流

1.查找 大于 500MB 的文件:

sudo find / -type f -size +500M -exec ls -lh {} \;

以下是可以 安全删除 的文件:


1. Snap 缓存文件

这些是 Snap 的安装包缓存,删除后不会影响已安装的应用

复制代码
sudo rm -rf /var/lib/snapd/cache/*
sudo rm -rf /var/lib/snapd/snaps/gnome-42-2204_202.snap
sudo rm -rf /var/lib/snapd/snaps/gnome-42-2204_176.snap

2. 旧的 MySQL 日志和临时文件

这些是 MySQL 生成的临时文件、日志文件

复制代码
sudo systemctl stop mysql  # 先停止 MySQL
sudo rm -rf /data/mysql/binlog.000056
sudo rm -rf /data/mysql/undo_002
sudo rm -rf /data/mysql/#innodb_temp/temp_10.ibt
sudo systemctl start mysql  # 清理后重新启动 MySQL

3. 旧的下载文件

我的 /home/admin123/下载/ 目录下有 3.5G 的 CSV 文件 和 906M 的 ZIP 文件

复制代码
rm -rf "/home/admin123/下载/userBehavior.csv"
rm -rf "/home/admin123/.cache/vmware/drag_and_drop/XStE2o/UserBehavior.csv.zip"

4. Ubuntu ISO 文件

你的 /media/admin123/Ubuntu 20.04.2.0 LTS amd64/casper/filesystem.squashfs 约 2.0G,如果不再需要 Ubuntu 安装盘,可以卸载并删除:

复制代码
sudo umount /media/admin123/Ubuntu*
sudo rm -rf "/media/admin123/Ubuntu 20.04.2.0 LTS amd64/casper/filesystem.squashfs"

⚠️ 不要删除的文件

以下文件虽然很大,但 不能删除:

  • /usr/local/mysql/bin/mysqld(MySQL 的主程序)
  • /proc/kcore(虚拟内存映射,不占真实磁盘空间)

可安全删除的文件和命令:

复制代码
# 1. 清理 Snap 缓存
sudo rm -rf /var/lib/snapd/cache/*
sudo rm -rf /var/lib/snapd/snaps/gnome-42-2204_*.snap

# 2. 清理 MySQL 日志和临时文件
sudo systemctl stop mysql
sudo rm -rf /data/mysql/binlog.000056 /data/mysql/undo_002 /data/mysql/#innodb_temp/temp_10.ibt
sudo systemctl start mysql

# 3. 删除旧的下载文件
rm -rf "/home/admin123/下载/userBehavior.csv"
rm -rf "/home/admin123/.cache/vmware/drag_and_drop/XStE2o/UserBehavior.csv.zip"

# 4. 删除 Ubuntu ISO
sudo umount /media/admin123/Ubuntu*
sudo rm -rf "/media/admin123/Ubuntu 20.04.2.0 LTS amd64/casper/filesystem.squashfs"

2. 清理无用的 udev 规则

udev 主要用于管理设备,通常不会占用大量空间。但如果你想清理无用的 udev 规则,可以执行:

复制代码
sudo udevadm control --reload-rules
sudo udevadm trigger

这将重新加载 udev 规则并应用更改

如果udev 产生了大量日志,可以检查日志:

复制代码
journalctl -u systemd-udevd --no-pager --since "1 day ago"

如果 udev 日志过多,可以清理:

复制代码
sudo journalctl --vacuum-size=100M

将日志大小限制为 100MB


3. 清理 journalctl 日志

系统日志可能会占用大量空间,可以检查日志大小:

复制代码
journalctl --disk-usage

如果占用过大,可以限制日志大小,比如 500MB:

复制代码
sudo journalctl --vacuum-size=500M

4. 清理 APT 缓存

如果你的系统安装过大量软件,APT 缓存可能占用较多空间。你可以运行以下命令清理:

复制代码
sudo apt autoremove -y    # 移除不再需要的软件包
sudo apt autoclean        # 清理旧的安装包
sudo apt clean            # 清理所有缓存的安装包

我的效果如下:


5. 清理 Snap 旧版本

你的系统有很多 Snap 包(/snap/ 目录),它会保留多个旧版本,占用大量空间。你可以运行:

复制代码
snap list --all  # 查看所有 Snap 包

我的效果如下:

自动清理旧版本:

复制代码
sudo snap set system refresh.retain=2  # 只保留 2 个版本

然后运行:

复制代码
sudo snap refresh

6. 释放缓存

释放系统缓存,这不会删除数据,只是释放内存中的缓存

复制代码
sudo sync && sudo sysctl -w vm.drop_caches=3

或者:

复制代码
sudo echo 3 > /proc/sys/vm/drop_caches

最终效果

从92%到65%,挺不错的

相关推荐
甜到心里的蛋糕17 小时前
从 QQ 机器人到 B 站 AI 运营:一套可复现的视频流水线踩坑实录
运维·人工智能·python·自动化·视频制作
QYR-分析17 小时前
26.2% 高增!场内及园区无人物流车,厂内短驳自动化的 L4 货运载体
运维·自动化
熊猫钓鱼>_>17 小时前
鸿蒙 PC 三方库适配复盘:libfvad 1.0 —— 把 WebRTC VAD 做成能装进采集链路的静态库
服务器·开发语言·华为·harmonyos·openharmony·适配·鸿蒙pc
用户83514140494917 小时前
把日志和寄存器值喂给AI做故障定位,我的实际问法
linux·ubuntu
java_logo17 小时前
Docker 部署 DPanel:轻松搭建轻量容器管理平台
运维·docker·容器·podman·容器管理·dpanel·轩辕镜像
时间售卖铺17 小时前
Oracle DQL精髓:从基础到高级实战
运维·数据库·云原生·oracle
分布式存储与RustFS17 小时前
CI 老被 Docker Hub 的 429 卡住,自建 Registry 把镜像搬进内网
运维·docker·开源·镜像仓库·对象存储·ci·rustfs
Ruiery17 小时前
Linux 6.6内核内存管理深度解析(十七):vmalloc — 内核要“虚拟连续“就够:物理页逐个凑,页表来连
linux·运维·服务器
pt104317 小时前
Cisco设备网络安全系列-19:网络安全事件驱动与调整
运维·网络
Escalating_xu17 小时前
【Linux 网络编程】ARP 的具体过程与 ARP 欺骗:一条 IP → MAC 映射,怎样改变数据的去向?
linux·网络·tcp/ip