作者:admin 原因: 在baidu上查詢得知產生這些海量文件的原因是:系統中有用戶開啟了cron,而cron中執行的程序有輸出內容,輸出內容會以郵件形式發給cron的用戶,而sendmail沒有啟動所以就產生了這些文件;所以這些文件不是什麼重要的文件,刪! 於是cd /var/spool/clientmqueue rm * (rm -f *) 都不行,顯示參數列表過長(-bash: /bin/rm: Argument list too long)無法用rm直接刪除,怎麼辦? 解決辦法: 將crontab裡面的命令後面加上 > /dev/null 2>&1。 如:ls -l / > /dev/null 2>&1 補充,這些文件太多的時候用rm刪除很慢,可以以root身份進入/var/spool/clientmqueue/,執行: ls|xargs rm -f 就能全部刪除了 使用xargs # cd /var/spool/clientmqueue # ls | xargs rm -f 回車后,過了兩三分鐘,終於執行完了,clientmqueue下空空如也,磁碟可用空間一下子增加了不少。 附xargs介紹: Linux Shell真的是一個比較好玩的東西,以前也會經常寫一些,不過都是些簡單的東西,或者稱之為批處理,估計也只能叫批處理,只是一些簡單的命令的堆積。:)。 今天稍微看了一下xargs,一個簡單的示例應用如下: [root@TestServer haha]#ls a.class b.class c.class a.java b.java c.java [root@TestServer haha]#ls |xargs rm [root@TestServer haha]#ls [root@TestServer haha]# 呵呵,雖然有點避簡就煩,但是能說明了xargs的功能:它將輸入輸出給xargs後面的命令,作為那個命令的參數。 也就是說,上面的命令執行相當於: rm a.class b.class c.class a.java b.java c.java xargs將前面的ls的結果交給了xargs後面的rm命令,作為rm命令的參數。它真正的含義可以用xargs自己來解釋: [root@TestServer haha]# cat a first line second line [root@TestServer haha]# cat a |xargs first line second line [root@TestServer haha]# cat a |xargs --verbose /bin/echo first line second line first line second line third line [root@TestServer haha]# cat a |xargs --verbose --max-args=1 /bin/echo first first /bin/echo line line /bin/echo second second /bin/echo line line 還有人這樣解釋xargs: xargs的作用是用來迴避對命令行長度的限制,它通過使用一個參數多次調用一個命令實現這一功能,而不是一次使用多個參數。這句話的意思是:xargs永遠一次只傳給他後面的命令一個參數,然後不停的將所有參數一一傳完,然而,這個說法是錯誤的!下面的試驗將證明這個說法是不正確的: [root@TestServer haha]# ll total 12 -rw-r--r-- 1 root root 34 Aug 19 20:43 a -rw-r--r-- 1 root root 34 Aug 19 20:45 b drwxr-xr-x 2 root root 4096 Aug 19 20:54 c_folder [root@TestServer haha]# ll c_folder/ total 0 [root@TestServer haha]# ls| xargs cp [root@TestServer haha]# ll total 12 -rw-r--r-- 1 root root 34 Aug 19 20:43 a -rw-r--r-- 1 root root 34 Aug 19 20:45 b drwxr-xr-x 2 root root 4096 Aug 19 20:54 c_folder [root@TestServer haha]# ll c_folder/ total 8 -rw-r--r-- 1 root root 34 Aug 19 20:54 a -rw-r--r-- 1 root root 34 Aug 19 20:54 b [root@TestServer haha]# 從這個試驗可以看到,xargs確實是將a b c_folder三個參數同時傳給了cp命令,不然不可能出現這樣的結果。 附rm命令: 名稱:rm 使用許可權:所有使用者 使用方式:rm [options] name... 說明:刪除檔案及目錄。 參數:? -i 刪除前逐一詢問確認。 -f 即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認。 -r 將目錄及以下之檔案亦逐一刪除。 範例: 刪除所有C語言程式檔;刪除前逐一詢問確認 : rm -i *.c 將 Finished 子目錄及子目錄中所有檔案刪除 : rm -r Finished
[火星人
]
/var/spool/clientmqueue/目錄下的產生大量文件的解決辦法 已經有666 次圍觀
本文地址: http://coctec.com/docs/linux/show-post-202018.html