挂载的磁盘饱满怎么解决(应急快看)

方法一
步骤一:遇到磁盘空间不足的报错时候,首先使用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逻辑卷的方式挂载,增加磁盘后,可以使用动态扩容磁盘空间解决。

如下是大招!!!!!

如果遇到磁盘空间满,但是找不到相应文件的情况。
通常这种情况都是文件被删除,但是还被进程占用,造成du与df结果不一致。
处理办法通常是停止占用文件的进程。

但是如果进程不能被停止呢?

另一个处理办法就是通过清空文件释放空间。
处理办法如下:

通过lsof | grep deleted 找到未能删除掉的文件,确定占用的进程号;
通过 ls -l /proc/PID/fd/* | grep 文件名,找到相应文件句柄;
清除文件内容 echo > /proc/PID/fd/FD_NUM
这个操作被不会将文件删除,而是通过将文档内容清空的方法释放空间,文件还是存在的。

实验如下:

1.创造一个大文件
使用dd创建1个5000MB的文件,看df的输出,可用空间从13G降到了7.5G。

[root@test1 /]# df -TH
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                   tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                   tmpfs     2.0G   30M  2.0G   2% /run
tmpfs                   tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        39G   27G   13G  68% /
/dev/sda1               xfs       1.1G  394M  671M  37% /boot
tmpfs                   tmpfs     396M     0  396M   0% /run/user/0
[root@test1 /]# dd if=/dev/zero of=/delete.tmp bs=1000MB count=5
5+0 records in
5+0 records out
5000000000 bytes (5.0 GB) copied, 5.35441 s, 934 MB/s
[root@test1 /]# df -TH
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                   tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                   tmpfs     2.0G   30M  2.0G   2% /run
tmpfs                   tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        39G   32G  7.5G  81% /
/dev/sda1               xfs       1.1G  394M  671M  37% /boot
tmpfs                   tmpfs     396M     0  396M   0% /run/user/0
[root@test1 /]# du -sh /delete.tmp 
4.7G    /delete.tmp


2.使用tail 打开文件
用tail 打开文件,保证删除文件时,文件仍被占用

[root@test1 /]# tail -f /delete.tmp 


3.删除文件
使用rm 删除文件,在以下df输出中会发现,可用空间还是7.5G,没有变化,但是文件已经消失了。

[root@test1 /]# rm -f /delete.tmp 
[root@test1 /]# df -TH
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                   tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                   tmpfs     2.0G   30M  2.0G   2% /run
tmpfs                   tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        39G   32G  7.5G  81% /
/dev/sda1               xfs       1.1G  394M  671M  37% /boot
tmpfs                   tmpfs     396M     0  396M   0% /run/user/0
[root@test1 /]# du -sh /delete.tmp 
du: cannot access ‘/delete.tmp’: No such file or directory

4.查找删除的文件
lsof 显示了deleted状态的文件名和大小(5000000000)。

[root@test1 ~]# lsof | grep deleted 
tail         419                  root    3r      REG              253,0 5000000000      55981 /delete.tmp (deleted)

5.查找文件句柄
[root@test1 ~]# ll /proc/419/fd | grep delete.tmp
lr-x------ 1 root root 64 May 23 16:05 3 -> /delete.tmp (deleted)

6.清空文件
[root@test1 ~]# echo > /proc/419/fd/3
[root@test1 ~]# df -TH
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                   tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                   tmpfs     2.0G   30M  2.0G   2% /run
tmpfs                   tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        39G   27G   13G  68% /
/dev/sda1               xfs       1.1G  394M  671M  37% /boot
tmpfs                   tmpfs     396M     0  396M   0% /run/user/0
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值