首頁 > 軟體

Unix/Linux中常用的清理磁碟空間的命令

2020-06-16 17:48:26

這裡推薦幾種Unix/Linux中常用的清理磁碟空間方法:

第一種方法:

find ./ -name "*.log*" -exec echo ">" {} ;|sh

這條命令的意思就是搜尋當前目錄下的以".log”結尾的檔案,並將其清空,這種適合於紀錄檔長期存在並且不便直接刪除的時候使用。使用“>”進行清空操作的時候

後面要加上"|sh”。

第二種方法:

find ./ -name "*.log" -mtime +1 -exec compress {} ;
find ./ -name "*.log" -mtime +1 -exec rm {} ;

這條命令的意思就是搜尋當前目錄下的以".log"結尾的檔案,-mtime +1的意思就是檔案的最後修改時間超過1天的,對滿足這兩種條件的檔案進行壓縮或者刪除操

作。

第三種方法:

ls TRACE_*.log|perl -lne '@a=stat($_);if( (time()-$a[9])/3600 >6 ) {print "rm $_";}'|sh

ls ULOG.*[0-9]|perl -lne '@a=stat($_);if( (time()-$a[9])/3600 >24 ) {print "compress $_";}'|sh

ls大家很熟悉,就是列出當前資料夾下的檔案,後面的perl -lne就是perl中很有用的命令列引數,stat是其中的一個函數,能夠獲得檔案的各種狀態,"$_"就是由前面的ls函數列出的檔名的萬用字元,time()是系統函數,獲取當前的系統時間,"$a[9]"就是由前面的stat函數得到的檔案狀態a中第九個引數,也就是檔案的時間,“if( (time()-$a[9])/3600 >6 )”的意思顯而易見,就是指系統當前時間減去檔案時間如果大於6個小時的話,就執行後面的操作。

第二條命令類似。

一般來說,可以找出系統中的各個程式的紀錄檔目錄,並商定各個程式紀錄檔需要保留的時間,選用合適的命令,寫成清理指令碼,然後設定到系統的crontab中定期執行,這樣就實現了磁碟空間的自動維護,這樣就不會出現因為紀錄檔量過大而將系統磁碟空間佔滿而使程式不能正常執行的問題。

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-12/126515.htm


IT145.com E-mail:sddin#qq.com