今天發現一個測試資料庫 / 目錄被占用 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
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 *
如果檔案太多,占用空間太大,用上面指令删除慢的話,就執行下面的指令:
# ls | xargs rm -f