/var/spool/clientmqueue/下的大文件

緣由:java

在baidu上查詢得知產生這些海量文件的緣由是:系統中有用戶開啓了cron,而cron中執行的程序有輸出內容,輸出內容會以郵件形式發給cron的用戶,而sendmail沒有啓動因此就產生了這些文件;因此這些文件不是什麼重要的文件,刪!bash

因而cd /var/spool/clientmqueueide

rm * (rm -f *) 都不行,顯示參數列表過長(-bash: /bin/rm: Argument list too long)沒法用rm直接刪除,怎麼辦?命令行

 

解決辦法:crontab

將crontab裏面的命令後面加上 > /dev/null 2>&1。 如:ls -l / > /dev/null 2>&1it

 

補充,這些文件太多的時候用rm刪除很慢,能夠以root身份進入/var/spool/clientmqueue/,執行: ls|xargs rm -f 就能所有刪除了io

 

使用xargsclass

 

# cd /var/spool/clientmqueuecli

# 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

相關文章
相關標籤/搜索