服务器磁盘满无法释放空间解析及解决

硬盘显示被写满,但是用du -sh /*查看时占用硬盘空间之和还远小于硬盘大小

使用df -h查看,磁盘空间确实是满的,即找不到硬盘分区是怎么被写满的。

了解前因后果后,得知,这台WEB服务器的日志文件被删除了,目的是想清除日志文件占用的大量磁盘空间,但是当文件在一直被 写入的这个过程中,我们是无法彻底的删除的。

因此产生了这样的一个问题,下面我来模拟一下:

[[email protected] test]# dd if=/dev/zero of=/dev/sdc bs=10M count=10
10+0 records in
10+0 records out
104857600 bytes (105 MB) copied, 2.18347 s, 48.0 MB/s
[[email protected] test]# ll -hi /dev/sdc
48657 -rw-r--r--. 1 root root 100M Jul 14 19:08 /dev/sdc
[[email protected] test]# mkfs -t ext4 /dev/sdc
mke2fs 1.41.12 (17-May-2010)
/dev/sdc is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks:
    8193, 24577, 40961, 57345, 73729

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 22 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[[email protected] test]# tune2fs -c -1 /dev/sdc
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to -1
[[email protected] test]# mkdir /log
[[email protected] test]# mount -o loop /dev/sdc /log
[[email protected] log]# dd if=/dev/zero of=/log/1.txt bs=10M count=8
8+0 records in
8+0 records out
83886080 bytes (84 MB) copied, 0.287821 s, 291 MB/s
[[email protected] log]# echo "dddd">>1.txt
[[email protected] log]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        19G  1.5G   17G   8% /
tmpfs           491M     0  491M   0% /dev/shm
/dev/sda1       190M   35M  146M  19% /boot
/dev/sdc         93M   82M  6.4M  93% /log

我重新打开一个终端执行以下命令:

[[email protected] ~]# tail -f /log/1.txt
dddd

然后准备删除,查看结果

[[email protected] log]# rm 1.txt -f
[[email protected] log]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        19G  1.5G   17G   8% /
tmpfs           491M     0  491M   0% /dev/shm
/dev/sda1       190M   35M  146M  19% /boot
/dev/sdc         93M   82M  6.4M  93% /log
[[email protected] log]# ll
total 12
drwx------. 2 root root 12288 Jul 14 19:11 lost+found
[[email protected] log]# du -sh /log
13K    /log
[[email protected] log]# du -sh /log/*
12K    /log/lost+found
[[email protected] log]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        19G  1.5G   17G   8% /
tmpfs           491M     0  491M   0% /dev/shm
/dev/sda1       190M   35M  146M  19% /boot
/dev/sdc         93M   82M  6.4M  93% /log
[[email protected] log]# lsof |grep deleted
tail      3029      root    3r      REG                7,0 83886085         12 /log/1.txt (deleted)
[[email protected] log]# kill -15 3029
[[email protected] log]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        19G  1.5G   17G   8% /
tmpfs           491M     0  491M   0% /dev/shm
/dev/sda1       190M   35M  146M  19% /boot
/dev/sdc         93M  1.6M   87M   2% /log
[[email protected] log]# lsof |grep deleted
[[email protected] log]#

原文地址:https://www.cnblogs.com/henrylinux/p/11517007.html

时间: 2024-08-24 10:56:22

服务器磁盘满无法释放空间解析及解决的相关文章

Web服务器磁盘满故障深入解析

问题:硬盘显示被写满,但是用du -sh /*查看时占用硬盘空间之和还远小于硬盘大小即找不到硬盘分区是怎么被写满的. 今天下午接到一学生紧急求助,说生产线服务器硬盘满了.该删的日志都删掉了.可空间还是满的,情况危急啊.这个问题,在多年以前直接和间接的遇到过3-4次.以前太懒惰了,这次记录下来和大家分享. 相关日志如下: █ 查看硬盘分区大小[[email protected] ~]# cat /etc/redhat-release CentOS release 5.3 (Final)[[emai

一次服务器磁盘满,服务无法运行的经历记录

描述:今天下午业务里面的场景是,将符合条件的redis数据,封装存储到mongo中,然后删除redis中的数据.但是就是最后忘记了删除redis中的数据,导致高速的将相同的数据不断写入mongo中,导致mongodb爆炸了.所以平时我们在操作redis的时候一定要细心.解决办法:服务器扩容,将整个服务器镜像,然后磁盘备份,然后新买个磁盘,挂载到新的服务器作为数据盘,原来的盘作为系统盘,防止因为数据盘满了,影响系统盘的运行.具体步奏这里不细说,用的阿里云服务器,教程很详细. 原文地址:https:

运维实战案例之文件已删除但空间不释放问题解析

1.错误现象 运维的监控系统发来通知,报告一台服务器空间满了,登陆服务器查看,根分区确实没有空间了,如下图所示: 这里首先说明一下服务器的一些删除策略,由于Linux没有回收站功能,我们的线上服务器所有要删除的文件都会首先移动到系统/tmp目录下,然后定期清除/tmp目录下的数据.这个策略本身没有问题,但是通过检查发现这台服务器的系统分区中并没有单独划分/tmp分区,这样/tmp下的数据其实是占用了根分区的空间.既然找到了问题,那么删除/tmp目录下一些大数据即可,执行如下命令,检查/tmp下最

linux 磁盘删除文件后无法释放空间

预上线环境测试人员发现磁盘空间沾满,于是使用df -h 和 du -sh * 找到了大文件,并删除. 但并未释放空间,df -h 还是显示占用率为100%,此时du -sh * 显示占用只有7G,与df -h 查看到的内容不符. 在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接.然而如果文件是被程序占用的,则无法真正的清理磁盘空间,文件还是物理存在的. 此时使用lsof | grep deleted 查看 [[email protected] /]

Jenkins服务器磁盘空间管理策略

Jenkins在帮助我们自动化构建服务的同时也在消耗服务器的磁盘空间,试想如果构建的项目个数很多,而Jenkins 服务器磁盘空间又不是非常大的话,每隔一段时间磁盘空间就会爆满导致Jenkins出现磁盘空间不足无法构建的后果.这时候我们就需要进行一定的手工干预才能恢复Jenkins的正常运作.本文基于Windows操作系统,结合Jenkins 的相关特性解决上述问题. 一.手工删除构建记录 这是最基本的一种操作方法,通过直接物理删除构建记录进行磁盘空间管理.手工删除构建记录方式如下: 进入Jen

crfclust.bdb占用巨大空间导致磁盘满

crfclust.bdb占用巨大空间导致磁盘满 问题分析: 一上班就接到用户现场电话说有一套RAC数据库无法访问,随即登陆上去首先查看了磁盘空间,发现两个节点的/DBSoft目录已满,首先怀疑的是告警日志文件和$ORACLE_HOME/dbs 产生的归档日志文件没有删导致,经过检查后事实否认了我的判断. 随即想到的是CHM(ClusterHealth Monitor)服务未关导致crf文件无限增长导致磁盘空间占满,随即进入crf目录检查$ORACLE_HOME/crf/db:一看果然是crf文件

磁盘满

1.邮件服务器251,不能发送 .磁盘满,  clamav  日志大占用了空间 解决: service clamav-freshclam stop 删除日志 rm -rf /var/log/clamav/freshclam.log 2.文件服务器file01(ip248), cd / du -h --max-depth=1 find / -size +5000 sudo find / -type f -size +1024000k -exec du -h {} \; Linux 系统空间满,常见

Centos 系统文件删除后没有释放空间

今天发现一台服务器的/Home 目录下空间满了,Naigos有报警,于是要清空无用的文件,当我删除文件后,发现可用空间没有变化 os:centos5.5 发现当前磁盘空间使用情况: [[email protected] ~]# df -hFilesystem            Size  Used Avail Use% Mounted on/dev/sda1             981M  203M  729M  22% /none                   16G     0

Linux服务器磁盘满了如何处理

在我们日常工作中,服务器磁盘满了是一个常见的问题,那么我们如何有逻辑的有方法的去处理这件事儿呢?首先当我们服务器磁盘满了我们一般想到到的就是把比较大的而且不重要的文件删除,从而释放空间,在此之前我们必须要明白一件事情,那就是一个文件被彻底删除需要满足的条件:一是这个文件的硬链接数为0二是进程占用数为0好了废话不多说我们来看一看一个案例把!可以看到我在向文件里边追加数据的时候告诉我没有可用的空间了这时候我们用df命令查看一下剩余的空间:我们发现根空间的使用率已经是百分之百了,这时候我们使用du -