今天登录测试机器发现oracle无法启动,启动报错no space on device ,反复确认硬盘空间没有满:
[root@new ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_oracle11g-lv_root
66G 52G 11G 84% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 477M 40M 412M 9% /boot
[root@new ~]#
进一步检查,发现Inodes使用率100%
[root@new ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/vg_oracle11g-lv_root
4340752 4340752 0 100% /
tmpfs 479500 1 479499 1% /dev/shm
/dev/sda1 128016 39 127977 1% /boot
然后用以下语句检查,发现/var竟然用了4150912个inodes:
[root@new ~]# for i in /*; do echo $i; find $i | wc -l; done
/BENCHMARKS.md
1
/bin
122
/boot
30
/data
1008
/dev
708
/etc
2612
/home
148
/lib
4089
/lib64
425
/lost+found
1
/media
2
/misc
1
/mnt
1
/net
1
/ogg
272
/opt
68258
/oracle.sh
1
/proc
23711
/root
194
/sbin
314
/selinux
1
/srv
1
/sys
11687
/tmp
18
/tools
2
/use
4
/usr
123572
/var
4150912
再进一步发现是/var/spool/posfix占用最多,我这是oracle机器,没有运行postfix,把postfix删除,Inodes使用恢复正常:
rm -f /var/spool/postfix
或者用:
find /var/spool/postfix/ -type f |xargs rm -rf
删除后Inodes使用正常:
后来查询文章是以下原因导致:
系统执行计划任务crond时出错。而crond在执行脚本时会将保持信息以邮件的形式发送给crond用户,而环境的postfix没有正常运行,导致邮件发送失败,都会堆积在/var/spool/postfix/maildrop/目录中,(可以在crontab中第一行增加MAILTO=""发送为空)。如果sendmail或者postfix正常运行,则会在/var/mail目录下也会堆积大量的邮件。
解决:
1、vi /etc/crontab;将MAILTO=root修改为MAILTO="",保存。
2、/etc/init.d/crond restart
删除:
1、find /var/spool/postfix/maildrop/ -type f |xargs rm -rf