参考文章:
data盘磁盘爆满
解决方案:
1)删除/data/cache目录中的部分文件,释放出/data分区的一部分inode,特别要留意那些spool出来的文件,这种文件一般会占用比较多的节点,因为比较小而且零碎,同时要多留意日志文件信息等
2)用软连接将空闲分区/opt中的newcache目录连接到/data/cache,使用/opt分区的inode来缓解/data分区inode不足的问题:
# ln -s /opt/newcache /data/cache
3)更换服务器,用高配置的服务器替换低配置的服务器。
var目录磁盘爆满
问题:使用"df -h"命令发现磁盘使用率没有占满,但是无法写入文件,提示"no space left on device"!
原因:磁盘的inode节点使用爆满了!("df -i"命令查看/var空间的inode爆满)。
-------------------------------------------------------------------------------
可能原因1:
crontab里面定时执行的句子里没有加 > /dev/null 2>&1,系统中cron执行的程序有输出内容,
输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了很大零碎的文件:
crontab的job有问题,造成/var/spool/clientmqueue中产生许多的零碎文件。
处理方法:
用"rm -rf *"会不能删除,并会有相应的提示,大意是参数太多。
正确方法:
在/var/spool/clientmqueue/下执行命令:
# lsattr ./|awk -F"/" '{print $3}'|xargs -i rm -rf {}
表示用lsattr列出./下面的文件名的属性,用awk取出名字,然后rm -rf
还有一个比较靠谱的方法:
# find /var/spool/clientmqueue/ -type f -exec rm {} \;
或者在/var/spool/clientmqueue/目录下
# cd /var/spool/clientmqueue/
# find ./ -exec rm {} \;
将crontab中没有定向输出的行都在最后加上"> /dev/null 2>&1",在删除的过程中操作。
或者先停止crontab,加上重定向。
--------------------------------------------------------------------------------
可能原因2
可以看下日志文件是否太多,如果是日志文件占用大量的inodes可以临时释放清理下过期的日志。
也可以根据较大目录的文件占用情况,临时转移部分文件到占用磁盘较小的目录中。