有时候因为磁盘爆满,导致某些服务起不来。今天我们来讲解一下Linux磁盘爆满如何解决
步骤一: 遇到磁盘空间不足的情况时,先用df -h查看磁盘空间的使用情况,分析是哪个路径下的磁盘满了。
df 是 disk free 的缩写,用于显示目前在 Linux 系统上的文件系统磁盘的使用情况统计。
第一列 Filesystem
代表文件系统的名称;第二列 Size
表示文件系统的大小;第三列 Used
表示已占用多大的磁盘空间;第四列 Avail
表示可用磁盘空间的大小;第五列 Use%
表示磁盘使用率多大,100% 表示磁盘占满了;第六列 Mounted On
表示挂载在哪个目录。
从上面结果可以看到,有个文件系统占有率为88%,为/dev/mapper/centos-root
,挂载的目录为/
,我们进入这个目录 看下具体情况。假设根目录磁盘占用比较高,我们去跟目录里排查一下
步骤二: 进入对应的目录下,查找磁盘空间中的大文件。使用 du 命令来显示目录或文件所占用的磁盘空间大小
cd /
#使用 du 命令来显示目录或文件所占用的磁盘空间大小
du -x -h --max-depth=1
# 列出当前目录或文件的总大小,并按倒叙排序
du -sh /* | sort -nr
可以看到/var目录下占比较大,最下面的44G是总的占用空间大小。
步骤三: 进入/var目录下,再查找定位
cd /var
du -x -h --max-depth=1
可以发现/lib这个目录占用较大,进入后发现/debug占用较大
这样一层一层递进查找。如果发现某个目录下的文件占用过大,可以适当删除不必要的文件或目录、清理临时文件,以释放磁盘空间;或者增加磁盘空间。rm -rf /path/to/unneeded_files_or_directories
、rm -rf /tmp/*
# 释放磁盘空间
#删除不必要的文件或目录
rm -rf /path/to/unneeded_files_or_directories
#清理临时文件
rm -rf /tmp/*
# 增加磁盘空间
#譬如 添加新的磁盘分区并挂载到 MySQL 数据目录下
# 创建新的分区
sudo fdisk /dev/sdb
# 格式化分区
sudo mkfs.ext4 /dev/sdb1
# 创建挂载点
sudo mkdir /mnt/mysql_data
# 挂载新的分区
sudo mount /dev/sdb1 /mnt/mysql_data
步骤四: 除了上面逐层定位的方法,我们可以直接查找出大文件,使用命令find /root -size +500M