今天发现一个测试数据库 / 目录被占用 100% , 一些命令不能执行 , 开始查找是哪些文件导致占用如此高 。

[root@rmadbbk clientmqueue]# cd /
[root@rmadbbk /]# ls
bin data etc initrd lost+found mnt proc sbin tftpboot u01 var
boot dev home lib misc opt root temp tmp usr
[root@rmadbbk /]# 
[root@rmadbbk /]# du -sh /

查看到 /var/ 目录下文件很大,1.6G左右,可能有问题,进一步CD到它的目录,然后 du -sh / 查看 , 发现 /var/spool/clientmqueue下产生很多文件,下面是网上找到的文章:

 

------------------------

 

问题现象:
linux操作系统中的/var/spool/clientmqueue/目录下存在大量文件。
原因分析:系统中有用户开启了cron,而cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了这些文件;
解决办法: 1、 将crontab里面的命令后面加上> /dev/null 2>&1
2、知识点:
2>:重定向错误。
2>&1:把错误重定向到输出要送到的地方。即把上述命令的执行结果重定向到/dev/null,即抛弃,同时,把产生的错误也抛弃。
3、具体代码:
(1)、# crontab -u cvsroot -l
01 01 * * * /opt/bak/backup
01 02 * * * /opt/bak/backup2
(2)、# vi /opt/bak/backup
#!/bin/sh
cd /
getfacl -R repository > /opt/bak/backup.acl
(3)、# vi /opt/bak/backup2
#!/bin/sh
week=`date +%w`
tar zcvfp /opt/bak/cvs$week/cvs.tar.gz /repository >/dev/null 2>&1
4、清除/var/spool/clientmqueue/目录下的文件:
# cd /var/spool/clientmqueue
# rm -rf *
如果文件太多,占用空间太大,用上面命令删除慢的话,就执行下面的命令:
# cd /var/spool/clientmqueue
# ls | xargs rm -f