inode 耗尽处理

1.昨天晚上收到zabbix 报警,磁盘 / 空间已满。

2.登陆上去查看磁盘空间:

# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/vda1              20G  7.5G   15G  50% /

tmpfs                 3.9G   16K  3.9G   1% /dev/shm

/dev/vdb              148G  3.8G  137G   3% /data

由此可见,磁盘空间正常。

3.查看inode 使用情况

查看inode :

# df -i

Filesystem            Inodes   IUsed   IFree IUse% Mounted on

/dev/vda3            2289280    2289280 5    100% /

tmpfs                  62805       1   62804    1% /dev/shm

/dev/vda1              51200      44   51156    1% /boot

/dev/vdb4            1966080    1327 1964753    1% /data

/ 的inode 已经爆满

4.查看那个分区占用最多

du --max-depth=1 /

...

var 最多

继续查看:

du --max-depth=1 var/

....

spool 最多

继续查看:

du --max-depth=1 spool/

....

clientmqueue 最多

5.查看数量:

ls clientmqueue | wc -l

1248921

哇,竟然有这么多。

6./var/spool/clientmqueue目录文件的由来:

如果系统中有用户开启了cron,而cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了这些文件。

cron输出从定向:

很简单,在cron的自动执行语句后加上> /dev/null 2>&1

7./var/spool/clientmqueue 文件太多 rm -f * 删除会报错,无法删除。使用另外一种删除方法

8.建立空文件夹:

#mkidr /data/haha

# rsync --delete-before -a -H -v --progress --stats haha/ /var/spool/clientmqueue/

.....

deleting dfr787X1dF022679

deleting dfr787W1rw022630

deleting dfr787W1dY022629

deleting dfr787V1Fm022571

.....

rsync 海量删除文件

9.删除完毕,查看:

# df -i

Filesystem            Inodes   IUsed   IFree IUse% Mounted on

/dev/vda3            2289280   63766 2225514    3% /

tmpfs                  62805       1   62804    1% /dev/shm

/dev/vda1              51200      44   51156    1% /boot

/dev/vdb4            1966080    1331 1964749    1% /data

已经恢复。

时间: 2024-10-12 10:32:11

inode 耗尽处理的相关文章

Linux Inode 耗尽 no space

关于Inode一个应用的案例就是创建文件的时候发现没有足够的空间,通过df查看呢发现实际上Used只有20%,这里也是为什么du和df查看同样一个磁盘的时候发现大小不一致(自己可以试一下肯定不一致) 首先inode耗尽差生肯定是inode表没有空闲了,怎么解决??? find ./ -name "*.log*" |xargs -L rm可以删除,如果小文件太多可能会报错arglist too long find ./ -name "*.log*" -exec rm

ufs文件系统下inode耗尽导致业务进程重启失败

一次业务升级后,发现生产系统上的业务进程UPRG无法启动,日志里面报错:can not create UPRG.log,但是观察/logs目录剩余空间还有很多.尝试直接在/logs下touch文件也失败,也是报can not create file. 第一反应是/logs目录的权限是否被人误改了?但很快便发现目录权限正常. 第二反应是磁盘坏了,但想想磁盘是RAID1,不可能两个盘都坏了,而且系统日志里面没有任何磁盘报错. 第三反应是分区表坏了,但如果分区表坏了,应该cd都不能进去. ... 最后

Linux inode耗尽故障处理

Linux系统中一切皆是文件,系统内部不使用文件名,而使用inode号码来识别文件,一个文件必须占有一个inode,由于每个文件都必须有一个inode, 因此有可能发生inode已经用光,但是硬盘还没有满的情况,这样会导致无法在硬盘上创建新文件.首先准备实验环境,新建一个硬盘,用fdisk工具创建一个内存约5M的分区/dev/sdb1,再格式化,并将其挂载到/data目录下,使用带"-i"选项的df命令确认该分区中节点的使用情况. 接着编写一个测试程序,运行该程序可以耗尽/dev/sd

Inode占满导致No space left on device解决

线上有一台web服务器磁盘检测告警了,提示空间不足,登到服务器查看 touch:cannot touch `furm.html': No space left on device 使用df -h命令查看发现 /data/web分区只使用了2%,创建文件却提示磁盘空间不足,按道理不会出现这种情况的.怀疑是inode耗尽导致. 分析导致的原因:使用df –i查看发现inode已经耗尽,则系统上将不能创建文件 查找原因并解决 /data/web是线上业务数据目录,其中有个程序产生大量的小文件造成的.可

定时任务crond及由其导致的inode满案例

1.定时任务crond介绍 1.1 crond是什么 crond是linux系统中用来定期执行命令或指定程序任务的一种服务或软件. 特殊需求:(秒级别)crond服务就无法搞定了,一般工作中写脚本守护进程执行. 1.2 为什么要使用crond定时任务 linux系统的定时任务crond,相当于我们平时生活中的闹钟的功能.可以满足周期性执行任务的需求. 1.3 不同系统的定时任务和种类 1.3.1 windows 7 系统的定时任务 开始→所有程序→附件→系统工具→选择任务计划程序 1.3.2 l

inode满处理

inode过高 数据库磁盘inode资源占用完:使用df查看磁盘空间充足的,可以通过df -i命令查看,哪个盘的inode耗尽.该磁盘的某些目录下存在大量的小文件导致. 排查过程 [oracle@SSS-WW-DB02:/u01]$*for i in ./; do echo $i; find $i | wc -l; done;*./app11./lost+foundfind: `./lost+found': Permission denied1./oracle37896./oradata26./

0728linux基础内容小记

~-  上一个工作目录 ~+  当前工作目录 touch f{1..100} 创建名为f1~f100的文件 touch f{a..z}  创建名为fa~fz的文件 [:lower:] 任意小写字母 [:upper:] 任意大写字母 [:digit:] 任意数字,相当于0-9 [:alpha:] 任意大小写字母 [:alnum:] 任意数字或字母 [:space:] 空格 [:punct:] 标点符号 1.显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录 ls

Linux运维工程师面试题第一套

1)Linux启动大致过程? 加载BIOS–>读取MBR–>Boot Loader–>加载内核–>用户层init依据inittab文件来设定系统运行的等级(一般3或者5,3是多用户命令行,5是界面)–>init进程执行rc.syninit–>启动内核模块–>执行不同级别运行的脚本程序–>执行/etc/rc.d/rc.local(本地运行服务)–>执行/bin/login,就可以登录了. [评析]基本看过<鸟哥私房菜>的目录就能知道,这是第五

磁盘满

1.邮件服务器251,不能发送 .磁盘满,  clamav  日志大占用了空间 解决: service clamav-freshclam stop 删除日志 rm -rf /var/log/clamav/freshclam.log 2.文件服务器file01(ip248), cd / du -h --max-depth=1 find / -size +5000 sudo find / -type f -size +1024000k -exec du -h {} \; Linux 系统空间满,常见