背景:
最近往数据库里存的东西有点多,磁盘不够用
查看磁盘使用情况
df -h
/dev/sda5
(根目录 /
) 已使用 92%
咱们来开源节流
目录
一、开源
先虚拟机关机(我的这个只是演示,后台还在运行命令暂时管不了)
在设置里面调节磁盘大小
点碎片整理
还有选择扩展磁盘容量
之后的事就交给另一个博主吧,我不想当复读机
【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%,挺不错的