/var/spool/clientmqueue分析處理及海量文件刪除處理
某個服務器的/var/spool/clientmqueue目錄存在很多文件,ls都要執行好半天,網上查了一圈,記錄如下:
產生原因:系統中有用戶開啟了cron,而cron中執行的程序有輸出內容,輸出內容會以郵件形式發給cron的用戶,而sendmail沒有啟動所以就產生了這些文件;
解決辦法:將crontab裡面的命令後面加上 > /dev/null 2>&1
知識點
2>:重定向錯誤。
2>&1:把錯誤重定向到輸出要送到的地方。即把上述命令的執行結果重定向到/dev/null,即拋棄,同時,把產生的錯誤也拋棄。
清除海量文件辦法:直接使用ls都有點困難,網上很多說用ls | xargs rm -f,這個方法可能會導致服務器負載升高,推薦使用如下方法:
1.建立一個空目錄
Shell代碼
mkdir /data/blank
2.用rsync刪除目標目錄:
Shell代碼
rsync --delete-before -a -H -v --progress --stats /data/blank/ /targetdir
參數說明:
–delete-before 接收者在傳輸之前進行刪除操作
–progress 在傳輸時顯示傳輸過程
-a 歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性
-H 保持硬連接的文件
-v 詳細輸出模式
–stats 給出某些文件的傳輸狀態
-d transfer directories without recursing