阅读量:34
一、查看磁盘空间使用情况
在进行磁盘管理前,需先明确空间占用状态。常用命令如下:
df -h:查看各分区的磁盘使用情况(包括总大小、已用空间、可用空间及挂载点),-h参数以人类可读格式(GB/MB)显示,便于快速识别空间不足的分区。lsblk:列出所有块设备(如硬盘、分区、逻辑卷)的层级结构,帮助理解系统的存储拓扑(例如区分物理卷与逻辑卷)。du -sh /path/to/directory:分析指定目录的磁盘占用,-s显示总计,-h人类可读,可递归查看子目录大小(如du -sh /var/*查看/var下各目录的占用)。ncdu:基于文本的交互式磁盘分析工具,更直观地展示目录树的空间占用(需安装:sudo apt install ncdu),支持按大小排序、进入子目录查看,适合快速定位大文件。
二、清理APT缓存与残留配置
APT包管理器的缓存是磁盘空间的常见占用源,清理可释放大量空间:
- 清理APT缓存:
sudo apt clean会删除/var/cache/apt/archives下所有已下载的.deb软件包;sudo apt autoclean则仅删除旧版本的缓存包(保留当前版本的包)。 - 彻底卸载软件及残留配置:使用
sudo apt purge package-name彻底删除软件包及其配置文件(避免残留的.conf文件占用空间);sudo apt autoremove自动移除不再需要的依赖包(如软件卸载后遗留的开发库)。 - 清理孤儿软件包:孤儿软件包是软件卸载后未被自动移除的依赖项,可通过
sudo apt install deborphan安装deborphan工具,运行sudo deborphan | xargs sudo apt purge -y删除所有孤儿包。
三、管理日志文件
日志文件(尤其是 /var/log 目录)随时间增长会占用大量空间,需定期清理:
- 使用
logrotate管理日志:logrotate是Debian默认的日志轮转工具,可自动压缩、删除旧日志(配置文件位于/etc/logrotate.conf及/etc/logrotate.d/下的子配置)。手动触发轮转:sudo logrotate -f /etc/logrotate.conf。 - 清理旧日志:直接清空过期日志文件(如系统日志
/var/log/syslog、内核日志/var/log/kern.log),注意备份重要日志后再操作:sudo truncate -s 0 /var/log/syslog(将文件大小截断为0);或使用journalctl清理systemd日志:sudo journalctl --vacuum-time=7d(删除7天前的日志)。
四、查找并删除大文件/目录
定位大文件是释放空间的关键,可通过以下命令快速查找:
find命令:查找指定目录下超过一定大小的文件(如查找/home下大于100MB的文件):sudo find /home -type f -size +100M -exec ls -lh {} \;(-type f仅查找文件,-size +100M大于100MB,-exec ls -lh {} \;显示文件详情)。ncdu工具:通过交互式界面查看目录占用排名,进入目标目录后,按S键按大小排序,快速定位大文件或目录。
五、清理临时文件与缓存
临时文件(如 /tmp 目录)通常可安全删除,不会影响系统运行:
- 清理
/tmp目录:/tmp下的文件多为临时使用,可直接删除(建议先检查是否有重要文件):sudo rm -rf /tmp/*;或使用find查找7天未修改的临时文件:sudo find /tmp -type f -atime +7 -delete。 - 清理应用缓存:部分应用(如浏览器、系统工具)会在本地缓存文件,可使用专用工具清理(如
bleachbit:sudo apt install bleachbit,图形化界面选择清理项目;或apt缓存的压缩包:sudo apt clean)。
六、管理与卸载不常用软件
不常用软件会占用磁盘空间,需定期清理:
- 卸载不常用软件:使用
sudo apt remove package-name卸载指定软件(保留配置文件,若需彻底删除则用purge);sudo apt remove --purge firmware-package-name删除不必要的固件(如打印机、网卡固件,减少空间占用)。 - 禁用不常用服务:停止并禁用不需要的服务(如
apache2、bind9),减少服务占用的日志和缓存空间:sudo systemctl stop apache2、sudo systemctl disable apache2。
七、调整分区大小(扩展空间)
若现有分区空间不足,可通过以下方式扩展:
- LVM(逻辑卷管理)扩展:若系统使用LVM,可通过以下步骤扩展逻辑卷(需提前有未分配的物理卷或扩展物理卷容量):
- 查看卷组剩余空间:
sudo vgdisplay(关注Free PE / Size字段); - 扩展逻辑卷:
sudo lvextend -L +5G /dev/mapper/vg-name-lv-name(增加5GB,替换为实际路径); - 调整文件系统大小:
sudo resize2fs /dev/mapper/vg-name-lv-name(适用于ext4文件系统,自动扩展至逻辑卷大小)。
- 查看卷组剩余空间:
- 添加新硬盘:若无法扩展现有分区,可添加新硬盘(物理或虚拟),通过
fdisk/parted分区、mkfs创建文件系统,然后将新分区挂载到现有目录(如/home):sudo mount /dev/new-partition /home,并修改/etc/fstab实现开机自动挂载。
八、监控清理效果
清理后需验证空间释放情况,确保操作有效:
- 重新查看磁盘使用:
df -h对比清理前后的分区使用率(如/分区的可用空间是否增加); - 监控特定目录:
ncdu /var查看/var目录(日志、缓存集中地)的大小变化,确认日志和缓存是否减少; - 检查进程占用:
lsof | grep deleted查看是否有已删除但仍被进程占用的文件(这些文件会占用空间直到进程重启),若有则重启对应进程释放空间。
注意事项:
- 执行删除操作前,务必备份重要数据(如
/home、/etc目录),避免误删导致数据丢失; - 对于生产环境,建议在非高峰时段执行清理操作,减少对系统运行的影响;
- 定期(如每月)执行磁盘清理任务,可设置cron job自动清理(如清理
/tmp中7天未访问的文件:0 0 * * * find /tmp -type f -atime +7 -delete)。