歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Unix/Linux中常用的清理磁盤空間的命令

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

日期:2017/2/28 13:55:47   编辑:Linux教程

這裡推薦幾種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中定期執行,這樣就實現了磁盤空間的自動維護,這樣就不會出現因為日志量過大而將系統磁盤空間占滿而使程序不能正常執行的問題。

Copyright © Linux教程網 All Rights Reserved