首先判断是不是磁盘空间满了、如果是磁盘空间满了就寻找占用空间比较多的的log之类的tmp文件删除就好了。
可以使用以下命令查看占用情况:
# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 41152832 9942528 29096820 26% /
devtmpfs 933584 0 933584 0% /dev
tmpfs 941040 0 941040 0% /dev/shm
tmpfs 941040 676 940364 1% /run
tmpfs 941040 0 941040 0% /sys/fs/cgroup
/dev/vdb1 13285488 4690464 7913504 38% /home
tmpfs 188208 0 188208 0% /run/user/0
tmpfs 188208 0 188208 0% /run/user/1004
如果不是空间满了那就有可能是因为小文件过多造成inodes占满了。
使用以下命令查看
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/vda1 2621440 201362 2420078 8% /
devtmpfs 233396 336 233060 1% /dev
tmpfs 235260 1 235259 1% /dev/shm
tmpfs 235260 473 234787 1% /run
tmpfs 235260 16 235244 1% /sys/fs/cgroup
/dev/vdb1 851968 46668 805300 6% /home
tmpfs 235260 1 235259 1% /run/user/0
tmpfs 235260 1 235259 1% /run/user/1004
这种情况可以使用以下命令查看哪个目录下的小文件太多:
for i in /var/*; do echo $i; find $i | wc -l; done
可能原因1:
/var/spool/postfix/maildrop目录下小文件过多。
由于linux在执行cron时,会将cron执行脚本中的output和warning信息,都会以邮件的形式发送Cron所有者,
而由于客户环境中的sendmail和postfix没有正常运行,导致邮件发送不成功,全部小文件堆积在了maildrop目录
下面,而且没有自动清理转换的机制,所以此目录堆积了大量的文件 .
进入/var/spool/postfix/maildrop路径,使用ls | xargs -n 10 rm -rf将文件清楚,问题得以恢复。
根本解决方法:
vi /etc/crontab
将MAILTO=root替换MAILTO=””,然后service crond restart即可。如不行crontab -e 第一行增加MAILTO=””