今天發(fā)現(xiàn)一個測試數(shù)據(jù)庫 / 目錄被占用 100% , 一些命令不能執(zhí)行 , 開始查找是哪些文件導(dǎo)致占用如此高 。
[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左右,可能有問題,進(jìn)一步CD到它的目錄,然后 du -sh / 查看 , 發(fā)現(xiàn) /var/spool/clientmqueue下產(chǎn)生很多文件,下面是網(wǎng)上找到的文章:
------------------------
問題現(xiàn)象:
linux操作系統(tǒng)中的/var/spool/clientmqueue/目錄下存在大量文件。
原因分析:系統(tǒng)中有用戶開啟了cron,而cron中執(zhí)行的程序有輸出內(nèi)容,輸出內(nèi)容會以郵件形式發(fā)給cron的用戶,而sendmail沒有啟動所以就產(chǎn)生了這些文件;
解決辦法: 1、 將crontab里面的命令后面加上> /dev/null 2>&1
2、知識點:
2>:重定向錯誤。
2>&1:把錯誤重定向到輸出要送到的地方。即把上述命令的執(zhí)行結(jié)果重定向到/dev/null,即拋棄,同時,把產(chǎn)生的錯誤也拋棄。
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 *
如果文件太多,占用空間太大,用上面命令刪除慢的話,就執(zhí)行下面的命令:
# cd /var/spool/clientmqueue
# ls | xargs rm -f