17370845950

LINUX磁盘空间满了怎么办_Linux磁盘空间清理与扩展方法
首先清理缓存、临时文件和无用软件包,再查找并删除大文件,配置日志轮转,最后通过LVM扩展或挂载新磁盘增加空间。

如果您发现系统的磁盘空间已满,导致程序无法正常运行或日志无法写入,可能是由于日志文件、缓存数据或临时文件占用了大量空间。以下是清理与扩展磁盘空间的具体操作方法。

本文运行环境:Dell PowerEdge R750,Ubuntu 22.04 Server

一、清理系统缓存和临时文件

系统在长期运行过程中会积累大量的缓存文件和临时数据,这些文件通常可以安全删除以释放空间。

1、清理APT包管理器的下载缓存,执行命令:sudo apt clean,该命令会清除所有已下载的.deb包。

2、使用sudo apt autoclean命令,仅删除不再可用版本的缓存包。

3、删除临时目录中的内容,运行:sudo rm -rf /tmp/*sudo rm -rf /var/tmp/*,注意确认无正在使用的临时文件。

二、卸载无用软件包

系统中可能安装了不再使用的软件包,这些包不仅占用磁盘空间,还可能带来安全风险。

1、列出所有已安装的软件包并按大小排序,使用命令:dpkg-query -W --showformat='${Installed-Size;8} ${Package}\n' | sort -nr

2、识别不需要的大型软件包,例如旧版内核或图形界面组件。

3、卸载指定软件包及其依赖项,执行:sudo apt purge 软件包名称,然后运行 sudo apt autoremove 删除残留依赖。

三、查找并删除大文件

通过定位占用空间最大的文件,可以有针对性地进行清理。

1、进入根目录并运行:sudo du -ah / | sort -hr | head -20,查看前20个最大文件或目录。

2、检查日志目录是否异常增长,特别是 /var/log 目录下的日志文件。

3、对于过大的日志文件,可使用 truncate -s 0 日志文件路径 清空内容而不删除文件,避免服务报错。

四、压缩或轮转日志文件

日志文件是磁盘空间被快速耗尽的常见原因,合理配置日志轮转策略可有效控制其大小。

1、编辑日志轮转配置文件:sudo nano /etc/logrotate.conf,确保启用了压缩选项(compress)。

2、为特定服务创建自定义轮转规则,例如在 /etc/logrotate.d/ 下新建配置文件。

3、手动触发日志轮转测试:sudo logrotate -f /etc/logrotate.conf,观察是否生成压缩后的日志归档文件。

五、扩展逻辑卷容量(LVM环境)

若系统使用LVM管理磁盘,可在不丢失数据的情况下动态扩展分区容量。

1、检查当前卷组是否有可用空间,运行:sudo vgdisplay 查看Free PE / Size数值。

2、如果有可用空间,直接扩展逻辑卷,例如对根分区执行:sudo lvextend -L +10G /dev/mapper/ubuntu--vg-ubuntu--lv

3、调整文件系统大小以应用新增空间,ext4文件系统使用:sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv;xfs使用 sudo xfs_growfs /

六、挂载新磁盘并迁移数据

当现有存储设备无法再扩展时,可通过添加新磁盘并将部分目录迁移到新磁盘来缓解空间压力。

1、连接新硬盘后,使用 lsblk 确认设备名称,如 /dev/sdb。

2、创建分区并格式化为ext4文件系统:sudo mkfs.ext4 /dev/sdb1

3、将新分区挂载到临时目录:sudo mount /dev/sdb1 /mnt/temp

4、将占用空间较大的目录(如 /home 或 /var/lib/docker)复制到新分区:sudo rsync -av /home/ /mnt/temp/

5、备份原目录后将其删除,并建立符号链接指向新位置,例如:sudo ln -s /mnt/temp /home