2019独角兽企业重金招聘Python工程师标准>>>

0. 问题描述

  • 现象
    收到钉钉报警,线上Solr服务器/var分区inode占满。

  • 影响
    /var分区无法再创建新文件。

  • inode是什么
    inode为文件系统中块的索引节点,os中每个文件会占用一个inode,且inode的大小是有限制,和磁盘大小成正比,与分区块的数量一致,所以在磁盘格式化后大小已固定。

1. 排查

# 1. 使用df -i 查看各分区inode使用情
[root@xxx ~]# df -i
Filesystem       Inodes   IUsed    IFree IUse% Mounted on
/dev/sda2       2097152   26111  2071041    2% /
tmpfs          33059719       4 33059715    1% /dev/shm
/dev/sda1         32768      46    32722    1% /boot
/dev/sda7      77840384   49535 77790849    1% /data
/dev/sda3       2097152  199748  1897404   10% /usr
/dev/sda5       2097152 2061500    35652   99% /var
# 结论:确定var分区inode基本快满了# 2. 使用 find /var目录查看最近1个小时内生成的文件
[root@xxx ~]# find /var/  -type f -mtime +60
....
/var/spool/postfix/maildrop/8B39F1B854F
/var/spool/postfix/maildrop/EA79986E6
/var/spool/postfix/maildrop/7576417CEB2
/var/spool/postfix/maildrop/EFEEA128578
/var/spool/postfix/maildrop/DF9C5216A
/var/spool/postfix/maildrop/895FB124392
....
# 结论:通过上述内容,基本可以定位是有由于/var/spool/postfix/maildrop目录下生成太多小文件引发问题的# 3. 临时解决方法
[root@xxx maildrop]# cd /var/spool/postfix/maildrop
[root@xxx maildrop]# rm -rf *
-bash: /bin/rm: Argument list too long # 无法删除
# 3.1 由于文件太多无法删除的解决办法,通过如下脚本查找出当前目录下的所有文件,然后再删除
[root@xxx maildrop]# find /var/spool/postfix/maildrop -type f -name '*' | xargs rm -rf '*'[root@xxx maildrop]# df -i
Filesystem       Inodes  IUsed    IFree IUse% Mounted on
/dev/sda2       2097152  26111  2071041    2% /
tmpfs          33059719      4 33059715    1% /dev/shm
/dev/sda1         32768     46    32722    1% /boot
/dev/sda7      77840384  50439 77789945    1% /data
/dev/sda3       2097152 199748  1897404   10% /usr
/dev/sda5       2097152   3952  2093200    1% /var # 恢复正常

2. 原因分析及解决办法

通过上述操作,发现原因为:/var/spool/postfix/maildrop目录生成大量文件。

  • 进一步分析
    maildrop文件夹下的文件生成原因为:

由于 Linux 在执行 cron 时,会将 cron 执行脚本中的 output 和 warning 信息,都会以邮件的形式发送 cron 所有者, 而由于客户环境中的 sendmail 和 postfix 没有正常运行,导致邮件发送不成功,全部小文件堆积在了 maildrop 目录下面,而且没有自动清理转换的机制,所以长达一年的时间,此目录已堆积了大量的文件。查看 man cron 的信息,可以知道会发送给 cron owner

  • 根治方法
    cron任务执行结果未屏蔽,解决办法:
# 1. 有问题的设置方式
*/10 * * * * /tmp/test.sh# 2. 使用>/dev/null 2>&1,将执行过程中的output和warning屏蔽,但cron任务执行的日志,仍会在/var/log/cron中找到
*/10 * * * * /tmp/test.sh >/dev/null 2>&1

99. 引文

  • Inode
  • linux磁盘空间查看inode
  • 四种解决”Argument list too long”参数列表过长的办法
  • Linux 中 /var/spool/postfix/maildrop 占用空间很大问题

转载于:https://my.oschina.net/andChow/blog/2980744

inode占满前因后果相关推荐

  1. Linux查看目录占用磁盘block,linux系统磁盘block、inode占满处理

    磁盘占满分两种情况,然后分别执行下面两个命令,看看自己属于哪种情况 磁盘block占满,查看命令: df  -vh 磁盘inode 占满,查看命令: df  -ih 一.block占满处理办法 需要用 ...

  2. linux系统磁盘block、inode占满处理

    1.磁盘的block占满,查看命令 df -vh 然后查看占用百分比 2.磁盘inode占满,查看命令df -ih 同样也是查看占用百分比 block占满处理办法 需要用到的命令如下: LL 列出当前 ...

  3. 服务器inode满了怎样删除文件,linux系统inode占满故障处理

    [root@centos7 ~]#  df -i /boot/                                 #查看inode编号 Filesystem     Inodes IUs ...

  4. 关于df -h卡住和系统磁盘被占满的问题

    df -h 卡住不动,一直不动也不报错,很费解,后来查看网上资料用strace 跟踪命令来查看df执行时候卡在哪里不动. starce df -h 当时候卡在了挂载点 /var/lib/kubelet ...

  5. 磁盘被占满   系统出现 no space left on 报错(block被占满/inode被占满)

    系统出现 no space left on 报错 但是使用df -h 发现磁盘并没有满 企业中在什么情况下会发生 解答: ext4文件系统在格式化的时候会创建inode 和 block 磁盘空间满是由 ...

  6. 关于Linux服务器磁盘空间占满问题的解决方法

    下面给大家分享一篇关于Linux服务器磁盘占满问题解决方法(/dev/sda3 满了),需要的的朋友参考下吧 下面我们一起来看一篇关于Linux服务器磁盘占满问题解决(/dev/sda3 满了),希望 ...

  7. (转)Linux服务器磁盘空间占满问题

    转自:https://www.cnblogs.com/cindy-cindy/p/6796684.html 下面我们一起来看一篇关于Linux服务器磁盘占满问题解决(/dev/sda3 满了),希望碰 ...

  8. 为什么linux虚拟机文件78g,linux 磁盘空间被占满但找不到目标文件的问题处理 lsof命令...

    lsof简介 在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能. 直接输入lsof部分输出为: 每行 ...

  9. linux 日志文件被占用下不来怎么办,linux 磁盘空间被占满但找不到目标文件的问题处理 lsof命令...

    lsof简介 在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能. 直接输入lsof部分输出为: 每行 ...

最新文章

  1. 英语语法---介词详解
  2. iqn怎么查 linux_程序员必备:46个Linux面试常见问题!收藏!
  3. Html5 冒泡排序演示
  4. thief book怎么用_战略管理工具箱--30个好用的战略管理好工具
  5. ksu7对讲机调频软件_科普 | 数字对讲机的群呼功能原理是什么?你了解多少?...
  6. 请允许我用2019年11种主流编程语言,祝祖国70华诞快乐!
  7. LeetCode(412)——Fizz Buzz(JavaScript)
  8. (十四)函数参数和返回值
  9. ScrollView详解
  10. ORA-12638 凭证检索失败
  11. 【语音识别】基于matlab GUI声纹识别【含Matlab源码 1022期】
  12. Sematic UI框架的学习-button样式(1)
  13. mac电脑运行很卡不流畅,如何给mac提速?
  14. Android屏幕常亮防息屏
  15. MATLAB运动目标增强
  16. 飞机座舱布局工效综合评价与评价方法初探
  17. nodejs文件服务器
  18. 如涵控股完成私有化交易:赴美上市刚满两年,市值已缩水超七成
  19. VBoxGuestAdditions下载地址
  20. c语言中的.c文件和.h文件

热门文章

  1. [转]Win下必备神器之Cmder
  2. 高性能mysql主存架构
  3. 在SQL SERVER中使用分布式事务
  4. 同是iPad退差价却不同?
  5. 快速统计hbase中某张表中数据条数
  6. 【OSS 排查方案-5】透过现象看本质之网络排查分析
  7. mysql linux版安装
  8. 网络生活点滴 网络管理实用8招技巧
  9. 人和人之间是需要沟通的
  10. jQuery Form Plugin (jquery表单插件)