Linux服务器磁盘空间占满难题

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

 在专门的学问中,大家大概会遭遇这么的难题,开采有些磁盘空间快满了,于是,找到一些无效的大文件将其除去后,发掘磁盘空间依然不曾自由掉,那是什么样原因吧?如何化解吗?上边来重现一下全套进程:

翻看磁盘空间情况

以下为该问题的解答:

[@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 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%,一点都没释放。

明日下班某电商本领部leader发现个难点,说他俩服务器硬盘满了。把日志文件都删掉了,可硬盘空间仍然满。于是df -h查看了下相继挂载点的情景(如下图)。

 

 

化解方法:

 小建议:

自此管理相关主题材料时,假使发掘du 和df 大小不雷同的情状,能够透过lsof 查看,只怕可以找到一些并发难题的缘故,借使依然找不到标题,在允许的事态下无妨试一下重启服务,可能难点就一举成功了。
重启服务得不到解决的场馆下,能够透过卸载磁盘分区来试着化解。
在决定删除某个文件前,最棒鲜明好这些文件被哪些服务应用,先停掉那些劳动再删除,那样就相当少出现空间释放不了的情事了

重启该日记文件的相干服务或程序,如:为apache日志文件则重启apache(如下图,重启后才硬盘空间占用正常)。

谈起底看一下磁盘空间,磁盘空间释放鸟~~

/dev/sda3攻陷了百分之百,那么大家du -s -h ./*看下目录的占用情状(如下图)。

[@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)

[@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

(写的不甚详细,不亮堂的豪门再google下。)

发觉时billing程序占用没释放,所以交流项目首席营业官将Billing_P停掉,重启,依旧未有自由别的空间。无果
猜猜2:删除的文书是accout目录下的pacct文件,应该是由psacct爆发和管制,重启那几个顺序后是还是不是会OK呢?化解

 [@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

挂载点下的目录之和远小于4.5G,那么是什么样占用了硬盘呢?

4. 因为除去了access.log,所以大家就找不到该文件了,du也查不到,就能够现出硬盘满了但看不到究竟是什么文件占用的。

3. 透过rm命令删除了access.log后,apache依旧写日记到access.log中,当张开apache进程时,已经通过access.log定位到该公文的inode了,正是说再写日记是不通过access.log,由此即便去除了access.log,apache还是写日记到access.log所在的inode节点,所以导致硬盘空间扩充。

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

2. 透过rm命令删除access.log,实际只删除了文本名(该日记文件应用记数不为0,因而空间不会被假释)。

 

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

  1. 这段日子access.log日志正在被apache进程占用。

但du –sh * 却突显未有大文件了

图片 1

 

图片 2

原理剖判:

下边大家一块来看一篇有关Linux服务器磁盘占满难点化解(/dev/sda3 满了),希望越过此类难点的人能带来支持。

在apache/tomcat服务在运转情况下,清空了运维服务的日记,进而形成了/dev/sda3 满了的难点。经常情况下,大大多劳动(包罗剧本)在运维时,是无法去除当前正在写入的日记文件的。

本文由2020欧洲杯官方投注-2020欧洲杯官方投注网址发布于win7,转载请注明出处:Linux服务器磁盘空间占满难题

相关阅读