EXT3_DX_ADD_ENTRY: DIRECTORY INDEX FULL!
inode问题故障1例
故障关键字:ext3_dx_add_entry: Directory index full!
线上业务的一台服务器无缘无故突然挂了
让机房帮忙连接显示器后发现报错
http://image.kbnix.com/Blog/monitor_error.jpg
遂让机房重启了
重启后能正常进入系统,查看/var/log/message后,依然发现有这个报错,而且是持续了很久了,看来是没关注好这类型错误
先是马上查看了硬盘的inode数
df -i看,没有异常,inode use采用了14%
再Google一下,说是ext3文件系统单个目录下不能超过32000个节点
然后就查一下到底是哪个目录占用inode过多了
for i in /*; do echo $i; find $i |wc -l; done
这时候在/var目录下卡住了半天不出结果
接着进入/var里面查看一下
先是看了/var下的xdebug目录跟tmp目录,都是空的,没有异常
随手进入了spool目录
ll一看,惊呆了,其他目录都是4096大小的,里面的一个目录clientmqueue是一个天文数字
ll -h一看,1017M的目录。。。我去,这里面隐藏了多少inode
马上Google之,说是计划任务cron由于没有把输出重定向掉,而导致的,cron会把执行的计划任务的输出以mail的形式发给指定的管理员账户,默认是发给root的,然后由于没有安装或者开启sendmail服务,就会把邮件积压在这个目录里面
马上检查crontab,/etc/crontab,/etc/cron.d/*,/var/spool/cron/root,都看了,所有计划任务都是加了重定向>/dev/null 2>&1的
那就奇怪了,怎么没效果呢
马上把目录移除掉rm -rf,rsync –delete,ls | xargs rm -f都好像卡死了一样没效果
果断把它先mv掉,然后重建一个给它,发现cron继续往里面写文件了,看一下内容,都是cron的输出,重启一下crond看看,还是老样子,没效果,继续写
暂时解决办法:
把clientmqueue目录mv掉,不建立目录了,让cron无处可写,然后现在挂在screen里用rsync –delete的方法来删掉mv过的clientmqueue目录,挂了一晚,一直还卡在那,想看看有没在删
ps aux | grep rsync获取pid,然后strace -p pid,看到进程一直在unlink了,这下才放心,确定它是一直在删除的了
df -i再看看,inode use降到了8%了,目前还在删
—
后续
删了1天半,终于删完了
后面把sendmail服务删掉就没有再往clientmqueue写文件了
yum remove sendmail
EXT3_DX_ADD_ENTRY: DIRECTORY INDEX FULL!的更多相关文章
- [原][openstack-pike][controller node][issue-3][horizon] dashboard show internal error 500 Cannot serve directory /var/www/html
问题点: 安装完pike后发现只能使用 ip:80 登录到http的主页面 不能使用 http://controller_ip:80/dashboard 登录openstack登录页面.如下图 重启h ...
- Python3.5 day4作业:对员工信息文件,实现增删改查操作。
需求: 1.可进行模糊查询,语法至少支持下面3种: 1.select name,age from staff_table where age > 22 2.select * from staf ...
- [转]Part1: Understanding !PTE , Part 1: Let’s get physical
http://blogs.msdn.com/b/ntdebugging/archive/2010/02/05/understanding-pte-part-1-let-s-get-physical.a ...
- mysql5.5手册读书日记(3)
<?php /* MySQL_5.5中文参考手册 587开始 与GROUP BY子句同时使用的函数和修改程序 12.10.1. GROUP BY(聚合)函数 12.10.2. GROUP BY修 ...
- .htaccess文件的详解以及404页面的设置
打开记事本,写入以下代码: ErrorDocument 404 /404.html保存成.htaccess文件上传到网站的根目录. /404.html是目录名和文件名,可以改成自己的名字.QUOTE: ...
- nginx 跨域。。。掉坑里了,小心
今天公司产品一个功能突然挂掉了...向客户演示之前出现了,手机端显示不能获取下载资源,可是急坏了一票人.. 通过手机端,调查服务器地址调用了http:/2342342.domain.hostname. ...
- 开发DZ插件教程
插件制作的基本思路是:(初学者适用)1.形成插件思路2.制作插件界面3.构架程序模块4.搭建存储数据5.填充功能语句6.检查应用错误7.完善插件功能 前言:为方便互联网数万Discuz!爱好者,更加深 ...
- 13.1.17 CREATE TABLE Syntax
13.1.17 CREATE TABLE Syntax 13.1.17.1 CREATE TABLE ... LIKE Syntax 13.1.17.2 CREATE TABLE ... SELECT ...
- Nginx 配置指令的执行顺序(六)
前面我们在 (五) 中提到,在一个 location 中使用 content 阶段指令时,通常情况下就是对应的 Nginx 模块注册该 location 中的“内容处理程序”.那么当一个 locati ...
随机推荐
- 《Objiect》
[16-1]Object概述&Object-equals方法&toString方法. ================================================= ...
- Matlab单一变量曲线拟合-cftool
2.启动曲线拟合工具箱>cftool 3.进入曲线拟合工具箱界面“Curve Fitting tool”(1)点击“Data”按钮,弹出“Data”窗口:(2)利用X data和Y data的下 ...
- fix eclipse gc overhead limit exceeded in mac
fix eclipse gc overhead limit exceeded: 在mac上找不到eclipse.ini文件编辑内存限制,在eclipse安装目录右击eclipse程序,选“显示包内容” ...
- Virtual Friend Function
一般而言,友元作为一种紧耦合的设计,被视作类的一部分.一个经典的应用就是关于类的序列化和反序列化. class A { friend ostream& operator<<(ost ...
- JS监听关闭浏览器事件
Onunload与Onbeforeunload Onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过window.onunload来指定或 ...
- application:didFinishLaunchingWithOptions:详解
iOS 程序启动时总会调用application:didFinishLaunchingWithOptions:,其中第二个参数launchOptions为NSDictionary类型的对象,里面存储有 ...
- iOS 实现简单的Http 服务
http 是计算机之间通讯协议的比较简单的一种.在iPhone上,由于没有同步数据和文件共享,所以实现PC与设备之间的数据传输的最佳方式就是在程序中嵌套一个http 服务器.在这篇帖子中,我将简单的演 ...
- jquery中bind事件时的命名空间用法(转)
场景:页面上的某个元素bind多个click事件处理函数,视用户的具体交互情况来决定到底使用哪个处理函数. 问题: unbind时会解绑所有的click事件,造成误伤.如果之前bind时有定义处理函数 ...
- BZOJ3261 最大异或和 (可持久化Trie)
; len=; var x,y,z,n,m,tot,lx,i:longint; sum:..maxn] of longint; rt:..maxn] of longint; time,l,r:..ma ...
- SQL基础2
create database fuxi --创建一个名为“fuxi”的数据库go --连接语句use fuxi --使用名为“fuxi”的数据库gocreat ...