当前位置: 首页 > news >正文

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

问题:硬盘显示被写满,但是用du -sh /*查看时占用硬盘空间之和还远小于硬盘大小
即找不到硬盘分区是怎么被写满的。

今天下午接到一学生紧急求助,说生产线服务器硬盘满了。该删的日志都删掉了。可空间还是满的,情况危急啊。这个问题,在多年以前直接和间接的遇到过3-4次。以前太懒惰了,这次记录下来和大家分享。


相关日志如下:

█ 查看硬盘分区大小
[root@www ~]# cat /etc/redhat-release
CentOS release 5.3 (Final)
[root@www ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             117G  111G     0 100% /
/dev/sda1             145M   12M  126M   9% /boot
tmpfs                 3.0G     0  3.0G   0% /dev/shm
这是一台web服务器(apache+tomcat+mysql)
通过dh -h命令查看 总大小117G,使用了111G
[root@www /]# fdisk -l

Disk /dev/sda: 146.8 GB, 146815733760 bytes
255 heads, 63 sectors/track, 17849 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          19      152586   83  Linux
/dev/sda2              20        2108    16779892+  82  Linux swap / Solaris
/dev/sda3            2109       17849   126439582+  83  Linux
[root@www /]# fdisk -l /dev/sda3

Disk /dev/sda3: 129.4 GB, 129474132480 bytes
255 heads, 63 sectors/track, 15741 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sda3 doesn't contain a valid partition table
==========================================================================================
█ 使用du命令查看到底哪些目录占用了空间
[root@www /]# du -sh /*
8.6M    /bin
6.1M    /boot
2.8G    /data ===》这里是DB目录
124K    /dev
60M     /etc
1.6G    /home ===》这里是日志目录
120M    /lib
24M     /lib64
16K     /lost+found
8.0K    /media
0       /misc
12K     /mnt
0       /net
8.0K    /opt
0       /proc
614M    /root
35M     /sbin
8.0K    /selinux
24K     /server
8.0K    /srv
0       /sys
24K     /tmp
2.5G    /usr
29G     /var  ==》这里是www目录
补充:du – –max–depth=1 -h (注意max前是两个–)可以统计当前目录下各个子目录所使用的空间

可以看出,上面所有目录之和 远小于总的空间占用111G,是什么占用了硬盘,还查不到呢?
---------------
解答:
出现上面问题原因:
在apache/tomcat服务在运行状态下,清空了运行服务的日志,这里是清理了当天或正在写入的apache及tomcat的日志文件,从而导致了上面问题。(有关原理细节见下文)

引申下:
一般情况下,大多数服务(包括脚本)在运行时,是不能删除当前正在写入的日志文件的。这点请大家要记牢。

本文的解决办法:
查找机器自身的服务,然后重起apache和tomcat。
重起apache后:
[root@www 07]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             117G  109G  2.3G  98% /
/dev/sda1             145M   12M  126M   9% /boot
tmpfs                 3.0G     0  3.0G   0% /dev/shm

重起tomcat后:
[root@www ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             117G   38G   74G  34% /
/dev/sda1             145M   12M  126M   9% /boot
tmpfs                 3.0G     0  3.0G   0% /dev/shm
 

 

删除文件原理图:

 

本文出自 “老男孩的linux博客” 博客,请务必保留此出处http://oldboy.blog.51cto.com/2561410/612351

相关文章:

  • 在shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)
  • ActionScript3游戏中的图像编程(连载十七)
  • Telnet Windows Server时,提示NTLM authenticatio错误解决方法
  • 深入分析关于DHCP SNOOPING的设置
  • 关于 ACCESS 中插入操作的相关内容
  • 深挖BAT内部级别和薪资待遇,你敢看?(转)
  • 学习 WCF (4)--学会使用配置文件
  • 《3D Math Primer for Graphics and Game Development》读书笔记2
  • LAMP之php 与 mysql 配置(三)
  • 走进wordpress 详细说说template-loader.php
  • ubuntu的备份和还原
  • 【转】Android 带checkbox的listView 实现多选,全选,反选----解决checkbox错位问题
  • ACL访问控制列表及特殊权限
  • [裴礼文数学分析中的典型问题与方法习题参考解答]4.5.5
  • Ubuntu APT使用指南
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Angular 响应式表单 基础例子
  • go append函数以及写入
  • Golang-长连接-状态推送
  • Hibernate最全面试题
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JavaScript类型识别
  • Linux CTF 逆向入门
  • Vue UI框架库开发介绍
  • Zsh 开发指南(第十四篇 文件读写)
  • 高程读书笔记 第六章 面向对象程序设计
  • 讲清楚之javascript作用域
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 如何选择开源的机器学习框架?
  • 硬币翻转问题,区间操作
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 容器镜像
  • ​520就是要宠粉,你的心头书我买单
  • #define与typedef区别
  • #Linux(帮助手册)
  • $refs 、$nextTic、动态组件、name的使用
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (WSI分类)WSI分类文献小综述 2024
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (接口封装)
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (实战篇)如何缓存数据
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (转)Mysql的优化设置
  • (转)nsfocus-绿盟科技笔试题目
  • .net core 6 集成和使用 mongodb
  • .NET大文件上传知识整理
  • .net反混淆脱壳工具de4dot的使用
  • .net访问oracle数据库性能问题