磁盘空间满了情况处理

今天服务器无法操作,查看磁盘信息,内存信息,cpu信息都是满的,重启后,都说磁盘满了,无法写device,用命令

df -i

查看inodes信息,发现inodes已用尽。

df -h

磁盘空间没有满

使用命令可以查看各个文件夹的大小排序:

进入对应文件夹进行查询,排序前12条,查询大文件夹

 du -hm --max-depth=2 | sort -nr | head -12

查询一个大文件

find . -type f -size +800M  -print0 | xargs -0 du -h

发现/var/spool/postfix/maildrop 小文件太多

解决:
1、vi /etc/crontab;将MAILTO=root修改为MAILTO=”“,保存。
2、/etc/init.d/crond restart
删除:
1、find /var/spool/postfix/maildrop/ -type f |xargs rm -rf

确定应该是inodes满了引起的

上面maildrop文件清空之后,发现问题解决了,怀疑是计划任务的mail文件太多引起的,修改计划任务的设置,在crontab末尾加上

>/dev/null 2>&1.

或者

&> /dev/null

例如

0 1 5 10 * /path/to/script.sh >/dev/null 2>&1
0 1 5 10 * /path/to/script.sh &> /dev/null

另外一种方法是编辑crontab
crontab -e
在第一行加入

MAILTO=””
保存退出

这样做的好处是,可以避免 /var/mail/root 体积快速增长

同时,如果还是没有处理好,inodes的占用还是太大,可以执行以下命令

解决方法:删除无用的临时文件,释放inode。
查找发现 /tmp 目录下有很多sess_xxxxx的 session临时文件。

ls -lt /tmp | wc -l  
4011517  

进入/tmp目录,执行find -exec命令

find /tmp -type f -exec rm {} \;  

如果使用rm *,有可能因为文件数量太多而出现Argument list too long错误,关于Argument list too long错误可以参考《linux Argument list too long错误解决方法》

除了/tmp的临时文件外,0字节的文件也会占用inode,应该也释放。
遍历寻找0字节的文件,并删除。

find /home -type f -size 0 -exec rm {} \;  

全部完成后,再用命令查看系统信息:

df -i

基本问题能解决了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值