Linux磁盘空间不释放问题解决办法

   在工作中,我们也许会遇到这样的问题,发现某个磁盘空间快满了,于是,找到一些无用的大文件将其删除后,发现磁盘空间还是没有释放掉,这是什么原因呢?如何解决呢?下面来重现一下整个过程:

查看磁盘空间情况

 [@74.114 var]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda2            9.7G  284M  8.9G   4% /
/dev/xvda1            251M   13M  226M   6% /boot
none                  1.1G     0  1.1G   0% /dev/shm
/dev/xvda10            97G   60G   33G  65% /home
/dev/xvda3            3.9G  2.7G  1.1G  72% /usr
/dev/xvda5            3.9G  3.6G   77M  98% /var

var分区快满了,找到大文件,并删除

[@74.114 var]# cd /var
[@74.114 var]# du –sh *
3.3G    account
111M    cache
53M     log
0       mail
156K    run
344K    spool

[@74.114 var]# rm –rf account/*

df –h 看一下,却依然是/var 为98%,一点都没释放。

[@74.114 var]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda2            9.7G  284M  8.9G   4% /
/dev/xvda1            251M   13M  226M   6% /boot
none                  1.1G     0  1.1G   0% /dev/shm
/dev/xvda10            97G   60G   33G  65% /home
/dev/xvda3            3.9G  2.7G  1.1G  72% /usr
/dev/xvda5            3.9G  3.6G   77M  98% /var

但du –sh * 却显示没有大文件了

[@74.114  ~]# cd /var && du –sh *
120K    account
111M    cache
53M     log
0       mail
156K    run
344K    spool

猜想1:应该是删除的内容依然被进程占用,内存没释放,所以用lsof |grep – I deleted 看了一下,发现如下:

[@74.114 account]# lsof |grep -i deleted
listserve  4833           blty    0u      CHR      136,2                    4 /dev/pts/2 (deleted)
listserve  4833           blty    1u      CHR      136,2                    4 /dev/pts/2 (deleted)
listserve  4833           blty    2u      CHR      136,2                    4 /dev/pts/2 (deleted)
Billing_P 16989           blty    0u      CHR      136,0                    2 /dev/pts/0 (deleted)
Billing_P 16989           blty    1u      CHR      136,0                    2 /dev/pts/0 (deleted)
Billing_P 16989           blty    2u      CHR      136,0                    2 /dev/pts/0 (deleted)
Billing_P 16990           blty    0u      CHR      136,0                    2 /dev/pts/0 (deleted)
Billing_P 16990           blty    1u      CHR      136,0                    2 /dev/pts/0 (deleted)
Billing_P 16990           blty    2u      CHR      136,0                    2 /dev/pts/0 (deleted)

发现时billing程序占用没释放,所以联系项目经理将Billing_P停掉,重启,依然没有释放任何空间。无果
猜想2:删除的文件是accout目录下的pacct文件,应该是由psacct产生和管理,重启这个程序后是否会OK呢?解决

[@74.114 account]# /etc/init.d/psacct restart

最后看一下磁盘空间,磁盘空间释放鸟~~

[@74.114 var]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda2            9.7G  284M  8.9G   4% /
/dev/xvda1            251M   13M  226M   6% /boot
none                  1.1G     0  1.1G   0% /dev/shm
/dev/xvda10            97G   60G   33G  65% /home
/dev/xvda3            3.9G  2.7G  1.1G  72% /usr
/dev/xvda5            3.9G  100M   3.6M  4% /var

 小建议:

以后处理相关问题时,如果发现du 和df 大小不一致的情况,可以通过lsof 查看,也许可以找到一些出现问题的原因,如果还是找不到问题,在允许的情况下不妨试一下重启服务,也许问题就迎刃而解了。
重启服务得不到解决的情况下,可以通过卸载磁盘分区来试着解决。
在决定删除某些文件前,最好确定好这个文件被哪些服务使用,先停掉这些服务再删除,这样就很少出现空间释放不了的情况了

时间: 2024-10-26 04:30:42

Linux磁盘空间不释放问题解决办法的相关文章

mongodb删除集合后磁盘空间不释放

mongodb删除集合后磁盘空间不释放,只有用db.repairDatabase()去修复才能释放.  但是在修复的过程中如果出现了非正常的mongodb的挂掉,再次启动时启动不了的,需要先修复才可以, 可以利用./mongod --repair --dbpath=/data/mongo/ 如果你是把数据库单独的放在一个文件夹中指定dbpath时就指 向要修复的数据库就可以,修复可能要花费很长的时间,在使用db.repairDatabase()去修复时一定要停掉读写,并且 mongodb要有备机

Linux磁盘空间满了的一些解决办法分享

1.linux 下查找大于10M的文件 find . -type f -size +10000k 2.删除所有空目录 find /data -type d -empty -exec rm -rf {} \;   3.linux下批量删除空文件(大小等于0的文件)的方法 find /data -type f -size 0c -exec rm -rf {} \; find /data -type f -size 0c|xargs rm –f   4.删除五天前的文件 find /data -mti

Win8如何释放磁盘空间的2个办法

Win8进行磁盘管理释放磁盘空间的方法如下: 方法一: 1.在需要清理的磁盘盘符下选择右键属性,选择常规中的磁盘清理. 2.选择要清理的内容后,点击"确定"即可. 3.提示是否删除点击"删除文件"即可. 4.如果需要删除已经删除安装的程序及还原点.需要点击"清理系统文件". 5.在之后弹出的界面中选择其他选项即可. 方法二 1.桌面点击Win按键,在空白出点击右键.最下方会出现所有程序选项. 2.点击所有程序中的项目. 3.之后提示选择要清理的分

LINUX系统磁盘空间满清除的办法

由于当初安装系统设计不合理,有些分区的过小,以及网络通讯故障等造成日志文件速度增长等其他原因都可以表现为磁盘空间满,造成无法读写磁盘,应用程序无法执行等.下面就给你支几招(以/home空间满为例). ​1.定期对重要文件系统扫描,并作对比,分析那些文件经常读写 #IS-IR/home>;files.txt #diff filesold.txt files.txt 通过分析预测空间的增长情况,同时可以考虑对不经常读写文件进行压缩,以减少占用空间. 2.查看空间文件系统的inodes消耗 #df-i

linux磁盘空间不足怎么办,磁盘清理方法

由于当初安装系统设计不合理,有些分区的过小,以及网络通讯故障等造成日志文件速度增长等其他原因都可以表现为磁盘空间满,造成无法读写磁盘,应用程序无法执行等.下面就给你支几招(以/home空间满为例): 1.定期对重要文件系统扫描,并作对比,分析那些文件经常读写 #IS-IR/home>;files.txt #diff filesold.txt files.txt 通过分析预测空间的增长情况,同时可以考虑对不经常读写文件进行压缩,以减少占用空间. 2.查看空间文件系统的inodes消耗 #df-i/

Linux磁盘空间监控告警

Linux系统中需要监控磁盘各分区的使用情 况,避免由于各种突发情况,造成磁盘空间被消耗殆尽的情况,例如某个分区被Oracle的归档日志耗尽,导致后续的日志文件无法归档,这时ORACLE数 据库就会出现错误.监控磁盘空间的使用情况,其实有许多工具,例如Nagios等,其实最简单的还是使用Shell脚本.下面就介绍一下如何通过 Shell脚本和Crontab作业结合来实现对磁盘空间的监控.告警. 一般查看磁盘各分区的使用情况可以通过df命令来查看,网上有两种获取磁盘使用百分比的Shell脚本. 1

查看Linux磁盘空间大小

一.df 命令: df 是来自于coreutils 软件包,系统安装时,就自带的:我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置: 举例: [root@localhost beinan]# df -lh Filesystem 容量 已用 可用 已用% 挂载点 /dev/hda8 11G 6.0G 4.4G 58% / /dev/shm 236M 0 236M 0% /dev/shm /dev/sda1 56G 22G 35G 39% /mnt/sda1 我们从中可以看到,系统安装

linux 运行时磁盘空间不足问题

问题描述 linux 运行时磁盘空间不足问题 Host system reported disk full. VM execution is suspended. You can resume after freeing some space. 解决方案 解决linux磁盘空间不足的问题Linux磁盘空间不足虚拟机linux磁盘空间不足的解决办法 解决方案二: 那就清理下空间,或者删除下东西就好了

如何解决无法释放Mac下删除文件磁盘空间

  如何解决无法释放Mac下删除文件磁盘空间         方法/步骤 首先呢,不知道是不是我这里才遇到:删除文件(之后清理掉Trash)或者用rm -rf直接命令行删除后,磁盘空间不释放. df -h或者用About this Mac看,磁盘空间都没变化.inode节点使用情况也没变化.后来没办法,查来查去,发现根目录下有一个.MobileBackups,占据空间巨大.查文档得知,这是Time Machine的本地备份. 问题是:我已经关闭Time Machine了,但是依然会在这里追加东西