门户网站磁盘占满,清除方法

本文参考:http://blog.51cto.com/oldboy/612351编著


#模拟他的场景,防火墙关闭,SELinux关闭

安装Apache服务

[[email protected] /]# yum -y install httpd    #yum安装Apache服务

[[email protected] /]# service httpd restart   #重启apache服务

[[email protected] /]# grep -i   "^#Cu" /etc/httpd/conf/httpd.conf

#CustomLog logs/access_log common

#CustomLog logs/referer_log referer

#CustomLog logs/agent_log agent

#CustomLog logs/referer_log referer

#CustomLog logs/agent_log agent

[[email protected] /]# sed -i   "[email protected]#CustomLog logs/access_log [email protected] /app/logs/access_log [email protected]"   /etc/httpd/conf/httpd.conf    #修改一下日志的存放路径

[[email protected] /]# grep -i "^#Cu" /etc/httpd/conf/httpd.conf

#CustomLog /app/logs/access_log common

#CustomLog logs/referer_log referer

#CustomLog logs/agent_log agent

模拟创建一个小磁盘

[[email protected] /]# dd if\=/dev/mapper/VolGroup-lv_root of\=/dev/sdb1   bs\=8k count\=10

10+0 records in

10+0 records out

81920 bytes (82 kB) copied, 0.000201325   s, 407 MB/s

#dd模拟创建一个磁盘,if输入,of输出,bs:blocks大小,count:block的数量

[[email protected] /]# mkfs.ext4 /dev/sdb1   #格式化分区

mke2fs 1.41.12 (17-May-2010)

/dev/sdb1 is not a block special device.

Proceed anyway? (y,n) y

Filesystem label=

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

Stride=0 blocks, Stripe width=0 blocks

16 inodes, 80 blocks

4 blocks (5.00%) reserved for the super   user

First data block=1

1 block group

8192 blocks per group, 8192 fragments per   group

16 inodes per group

Writing inode tables: done

Filesystem too small for a journal

Writing superblocks and filesystem   accounting information: done

This filesystem will be automatically   checked every 28 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

#挂载分区

[[email protected] /]# mkdir -p /app/logs/

[[email protected] /]# mount /dev/sdb1 /app/logs/      #这样挂载不成功,需要特使挂载,方法在下

mount: /dev/sdb1 is not a block device (maybe try `-o loop'?)

[[email protected] /]# mount -o loop /dev/sdb1 /app/logs/

[[email protected] /]# df -Th

Filesystem                   Type   Size    Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root ext4    18G    990M   16G   6% /

tmpfs                        tmpfs  1.9G       0  1.9G   0% /dev/shm

/dev/sda1                    ext4   485M     33M  427M   8% /boot

/dev/sdb1                      ext4    73K   14K     55K  21% /app/logs

#一个循环访问的脚本,1.sh

#!/usr/bin/bash

for n in `seq 1000000`    #循环执行多少次

do

curl 12.1.1.13   &>/dev/null    #把访问这个网站的结果不管 对错全部放到/dev/null

done

[[email protected] /]# sh /tmp/1.sh &     #把这个脚本放到后台执行

[[email protected] /]# df -Th

Filesystem                   Type   Size    Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root ext4    18G    995M   16G   6% /

tmpfs                        tmpfs  1.9G       0  1.9G   0% /dev/shm

/dev/sda1                    ext4   485M     33M  427M   8% /boot

/dev/sdb1                    ext4    73K     68K  1.0K  99% /app/logs

#解决方法一:删除日志文件,重启服务

[[email protected] /]# rm -rf /app/logs/access_log       #删除网站访问的日志文件

[[email protected] /]# df -Th

Filesystem                   Type   Size    Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root ext4    18G    995M   16G   6% /

tmpfs                        tmpfs  1.9G       0  1.9G   0% /dev/shm

/dev/sda1                    ext4     485M   33M  427M     8% /boot

/dev/sdb1                    ext4    73K     68K  1.0K  99% /app/logs

#把日志文件删除之后发现磁盘还是满的,这时候是因为删除文件的原理是:硬链接数(i_linke)为0,进程占用(i_count)为0,这个时候虽然硬链接数为0,。但是进程占用数不为0,所以这个文件还时存在的

[[email protected] /]#/etc/init.d/httpd restart    #重启服务

Stopping httpd:                                              [  OK  ]

Starting httpd: httpd: Could not reliably   determine the server's fully qualified domain name, using 12.1.1.13 for   ServerName

[  OK  ]

[[email protected] /]# df -Th

Filesystem                   Type   Size    Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root ext4    18G    995M   16G   6% /

tmpfs                        tmpfs  1.9G       0  1.9G   0% /dev/shm

/dev/sda1                    ext4   485M     33M  427M   8% /boot

/dev/sdb1                    ext4    73K     15K   54K  22% /app/logs

#把这个进程关闭在重启,然后进程占用为0,所以磁盘空间下来了。

#解决办法2,直接清空配置文件而不删除

[[email protected] /]# echo " " > /app/logs/access_log    #清空文件内容

[[email protected] /]# df -Th

Filesystem                   Type   Size    Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root ext4    18G    996M   16G   6% /

tmpfs                        tmpfs  1.9G       0  1.9G     0% /dev/shm

/dev/sda1                    ext4   485M     33M  427M   8% /boot

/dev/sdb1                    ext4    73K     16K   53K  24% /app/logs

报错的解决办法:


#如果报一下错误,说明模拟的分区磁盘过小,不足以创建文件系统,我们只需要在dd指令的bs参数后面加上单位,给他大一点就行

[[email protected] /]# mkfs.ext4  /dev/sdc1

mke2fs 1.41.12 (17-May-2010)

/dev/sdc1 is not a block special device.

Proceed anyway? (y,n) y

mkfs.ext4: Device size reported to be   zero.  Invalid partition specified, or

partition table wasn't reread after running fdisk, due to

a modified partition being busy and in use.  You may need to reboot

to re-read your partition table.

原文地址:http://blog.51cto.com/13447608/2090133

时间: 2024-10-08 08:59:27

门户网站磁盘占满,清除方法的相关文章

网站CPU占满,微信经常SSL不能建立的错误排查

微信SSL经常建立失败的问题排查 问题描述 及应急方案 问题描述: 使用微信访问时,一段时间过后总会提示SSL连接无法建立[程序中需要获取用OpenId,因此有调用企业微信Api的请求] 应急方案:在Global.asax 文件中加入如下代码让服务器不验证证书,但是感觉用途不大,再重启了应用程序池后表现正常,但是一段时间后又出现ssl建立失败的情况. protected void Application_Start() { ServicePointManager.SecurityProtocol

Linux服务器磁盘占满问题解决

今天下班某电商技术部leader发现个问题,说他们服务器硬盘满了.把日志文件都删掉了,可硬盘空间依旧满.于是df -h查看了下各个挂载点的状况(如下图). /dev/sda3占用了100%,那么我们du -s -h ./*看下目录的占用情况(如下图). linux磁盘挂载点目录占用情况(图) 挂载点下的目录之和远小于4.5G,那么是什么占用了硬盘呢? 以下为该问题的解答: 在apache/tomcat服务在运行状态下,清空了运行服务的日志,从而导致了/dev/sda3 满了的问题.一般情况下,大

Linux磁盘空间占满故障处理

Linux磁盘占满 当磁盘被某大文件占满时,而且此大文件正在被某些进程读写并占用着,此时无法删除和置空此文件,只能先找到占用大文件的进程,然后终止进程,最后置空此文件. 实例如下:在/boot分区中创建大文件test,将boot分区的磁盘占满,通过另外一个终端进入主机,vim编辑此test文件,模拟大文件被vim进程占用,然后删除和清空此test文件. 终端1 [[email protected] ~]# df -h  /boot/                                

Mybatis 并发执行导致cpu占满的问题

最近线上服务经常 出现cpu达到100%的问题,发现都是执行oracle操作的方法就没有返回.经过排查,最后定位到cpu消耗在以下方法 System.Collections.Generic.Dictionary`2<system.type,system.boolean>.FindEntry (...)System.Collections.Generic.Dictionary`2<system.__canon,system.boolean>.TryGetValue (...)MyBa

磁盘inode节点被占满的解决方法

Linux服务器,查看日志发现程序无法继续写文件,但是用df -h查看磁盘容量还有剩余. 排查思路:怀疑是机器的inode节点被占满,使用df -i查看磁盘inode节点使用情况,果然是inode节点满了. 进行如下步骤进行排查: 1,df -i查看磁盘节点使用情况,查看到inode节点已满. [[email protected] aig_sg_automation_test]$ df -iFilesystem Inodes IUsed IFree IUse% Mounted on/dev/ma

模拟web服务器产生的日志占满磁盘故障解决方案

生产环境可能你会遇到web服务器产生的log日志文件占满磁盘的现象,下面给出具体的解决方案 安装httpd web服务 [[email protected] ~]# yum install httpd -y 启动 [[email protected] ~]# /etc/init.d/httpd start 测试 [[email protected] ~]# lsof -i :80 COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

磁盘空间被占满导致前台的验证码无法显示

昨晚上11点多,公司的后台程序员打电话说登陆页面的验证码突然显示不出来了,我查看了一下,并和测试机上的代码做了一下比较(测试机上能正常显示,这是外包做的网站,不是自己写的),请求的地址都是一样的,地址文件也是一样的,请求也是成功的,只是没有数据的返回,之后还把实际上的文件用测试机上的文件覆盖了,还是不能正常显示,重启了服务器还是不能显示.折腾了很久,后来发现服务器上的磁盘被占满了,删除了一些多余的文件之后终于能正常显示了.之后查了一下说原来磁盘空间被占满,会出现web程序报错的情况.

linux 磁盘空间被占满但找不到目标文件的问题处理 lsof命令

lsof简介 在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能. 直接输入lsof部分输出为: 每行显示一个打开的文件,若不指定条件默认将显示所有进程打开的所有文件. lsof输出各列信息的意义如下: COMMAND:进程的名称 PID: 进程标识符 USER:进程所有者 FD: 文件描述符,应用程序通过文件描述符识别该文件.如cwd.txt等 TYPE:文件类型,如DIR.REG等 DEVICE

MySQL ibdata1撑爆占满磁盘空间

MySQL主从由于ibdata1占满磁盘空间-->主从失效 因为设置了innodb_file_per_table = 1,ibdata1依旧撑爆占满磁盘空间 主从断的时候,IO线程在连接,SQL线程断掉. 想要了解为何ibdata1增长那么大? 个人这么理解的:主从断掉,IO线程在,获取到了事件事物的更新,而SQL线程断掉,导致产生大量的undo,撑爆了ibdata1. 最终验证发现,确实是undo占满了ibdata1. 下载一个小工具:py_innodb_page_info.py  本人网盘下