1. 首页 > 服务器系统 > Linux

Linux磁盘满了快速排查和清理方法

快速定位磁盘占用原因

1. 检查磁盘使用情况

使用 df 命令查看磁盘分区的使用情况:

df -h
  • 参数说明
    • -h:以人类可读的格式显示(GB、MB)。
  • 输出示例

    plaintext

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   45G  5G   90% /
/dev/sda2       100G   95G  5G   95% /home

如果某个分区(如 / 或 /home)的 Use% 达到接近 100%,说明该分区已满。

2. 找出大文件和目录

(1) 使用 du 查找占用最多的目录

du 命令用于分析文件和文件夹的磁盘占用情况:

du -h --max-depth=1 /
  • 参数说明
    • -h:以人类可读的格式显示。
    • --max-depth=1:只查看顶级目录的大小。
  • 输出示例

    plaintext

5.0G   /var
20G    /home
15G    /usr
1.2G   /tmp

(2) 使用 find 查找大文件

查找超过 1GB 的大文件:

find / -type f -size +1G 2>/dev/null
  • 参数说明
    • -type f:只查找文件。
    • -size +1G:查找大于 1GB 的文件。
    • 2>/dev/null:忽略权限不足导致的错误。

3. 检查挂载点问题

有时磁盘分区挂载错误可能导致文件写入到了根目录,而不是正确的挂载点:

  • 检查是否有挂载问题:
mount
  • 如果某个挂载点(如 /mnt/data)没有正确挂载,可能会导致根分区被写满。
  • 解决方法:
    • 确认挂载点:
df -h

如果未正确挂载,重新挂载分区:

sudo mount /dev/sdX /mnt/data

清理磁盘空间的方法汇总

方法一

步骤一:遇到磁盘空间不足的报错时候,首先使用df -h查看磁盘空间使用情况,如图/home/zhang目录磁盘空间达到100%。

步骤二:进入目录/home/zhang,查找磁盘空间中的大文件,使用命令

du -h --max-depth=1 /

du -sh *查找占用空间大的目录,可以看到tomcat空间占用的空间比较大,通过逐层定位,最后会找到具体的文件

步骤三:除了上面逐层定位的方法,我们也可以直接查找出大文件,使用命令find /home/zhang -size +400M查找出大于400M的文件

步骤四:从上面可以看出,是/home/zhang/tomcat/logs/目录下的日志文件占用空间较大,如果判定日志文件已经无用,直接删除即可,如图,保留最近的日志文件,其余删除,空间释放

方法二

步骤一:除了磁盘空间除了文件占用之外,还有一种情况,当磁盘空间满了之后,我们无法查找到大文件,此时可能是文件可能已经被删掉,但有进程依然在使用它。在进程运行期间,Linux 不会释放该文件的存储空间。此时看到磁盘空间仍是100%

步骤二:此时适用命令lsof | lsof | grep deleted 查找到占用的进程,直接停止进程或者kill掉就可以释放空间(注:如果不是生产环境,重启操作系统,空间也会释放)

方法三

最后一种情况,就是随着linux系统应用的安装,当初磁盘空间申请过小,磁盘使用达到100%,也没有可以清理的磁盘空间,此时如果其余磁盘挂载点有充足的空间,我们可以通过软连接使用其余磁盘的空间,或者将应用安装到富余的目录空间,此外,现在很多磁盘都使用LVM逻辑卷的方式挂载,增加磁盘后,可以使用动态扩容磁盘空间解决。

以上就是linux服务器磁盘满了怎么办的详细内容,更多相关资料请阅读主机测评网其它文章!

本文由主机测评网发布,不代表主机测评网立场,转载联系作者并注明出处:https:///linux/8589.html

联系我们

在线咨询:点击这里给我发消息

微信号:

工作日:8:30-17:30,节假日休息