记录一次Centos服务器tmp目录满的问题排查处理....

早上美编组突然反应账号登录不上,个别文件上传不上,本人非专业的服务器运维人员,第一反应是服务器磁盘空间满了,立即上去排查一圈,发现磁盘尚有剩余空间,所以进一步排查问题,现在讲相关过程记录下来备用。

问题发现:相关应用不能正常使用,系统有明显报错提示(如下):

…bash: cannot create temp fileforhere-document: No space leftondevice…

有过初步的运维知识,并经过度妈显示 这种情况应该是服务器tmp目录被占满的提示,因此开始排除问题:

一、查看服务器磁盘空间情况:
df -hl 命令显示 / 根目录尚有60%空间未被使用
df -hl 命令显示 / 根目录40%空间已使用,尚有60%的空间未被使用,所以磁盘空间占满的情况给排除了(如果出现占用100%的问题,请自行度妈找解决问题办法,不在本篇讨论的范围之内;)

二、找出问题原因所在并排除(重点)
因为本人非专业的运维人员,所以并不知道接下来该怎么办(大佬可以无视),经过一番搜索及请教,得到一种提示:LINUX服务器也会因为小文件太多造成inode索引使用完,而报以上错误…; 随即开始确认问题;

1、执行命令 df -i 得到如下图:
可恶的100%
看到了 100%,感兴趣的人自行去百度,大致意思是LINUX写文件需要两个条件:01:磁盘有空间(文件大小占用容量);02:inode(类似于编号)之类的东东(存放文件数量),哪个有问题都会提示写入不了文件;病因找到,开始处理。

2、因为tmp目录一般在系统 / 根目录下,随即 cd / ,切换至系统根目录下执行如下命令

for i in /*; doecho$i;find$i| wc -l; done

大致意思是从 / 根目录开始逐级排查目录下文件的数量多少,一般会得到如下的图示;
每个目录下的数字表示了目录下文件的数量
经过层层定位,本人定位到如下目录:/var/spool/postfix/maildrop ,显示文件数量 200多万个,着实是有点大,封顶多少我也不知道,接下来就是删除文件了呗,执行如下命令:

ls | xargs rm -rf;

经过约10分钟左右的等待,命令执行完毕,通知美编组测试,一切恢复正常,特撰文记录。

三、为什么会出现这种情况,后续处理

/var/spool/postfix/maildrop 这个目录好像是存放了类似于cron执行后邮件通知的内容信息文件,继续上网查资料,发现是crontab 每次执行任务后会发送邮件,接受者是在他的配置文件 “/etc/crontab” 通过 MAILTO=root’ 来设置的,默认是root,如果执行输出没有十分必要要用邮件发送的话,可以修改此处。

随执行命令如下:

vi /etc/crontab;

将‘MAILTO=root’替换成‘MAILTO=“”,然后执行如下命令即可。

service crond restart

扩展资料
使用命令du -h –max-depth=1 /* 查看/ 根路径下文件的大小
du -sh /* 查看哪个目录最大,一步一步的查找大文件
使用du -h --max-depth=1查找最大的文件

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值