欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

dev/sda3 磁盘占满问题解决

程序员文章站 2024-03-14 17:06:10
...

1、服务器问题

查看服务器日志占用情况,发现日志文件本身没有占用多少磁盘空间,但是硬盘分区已经满了,导致服务器的服务也有问题;

df -h

dev/sda3 磁盘占满问题解决

/dev/sda3占用了100%,那么我们du -s -h ./*看下目录的占用情况:

du -s -h ./*

dev/sda3 磁盘占满问题解决

发现日志本身没有占多少空间。

2、大概原因:

在apache/tomcat服务在运行状态下,清空了运行服务的日志,从而导致了/dev/sda3 满了的问题。一般情况下,大多数服务(包括脚本)在运行时,是不能删除当前正在写入的日志文件的。

3、原理分析:

1. 当前access.log日志正在被apache进程占用。

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

3. 通过rm命令删除了access.log后,apache依然写日志到access.log中,当开启apache进程时,已经通过access.log定位到该文件的inode了,就是说再写日志是不通过access.log,因此即使删除了access.log,apache依然写日志到access.log所在的inode节点,所以导致硬盘空间增加。

4. 因为删除了access.log,所以我们就找不到该文件了,du也查不到,就会出现硬盘满了但看不到究竟是哪些文件占用的。

4、解决方法:

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

reboot

因为不确定哪个服务引起了该问题,因此我将服务器重启;

dev/sda3 磁盘占满问题解决