2017-09-26 59 views
0

在我的bash腳本中,我想只保留x天的日誌並刪除比這更早的日誌。日誌文件名稱本身包含創建日期。在linux中刪除比x天早的日誌

日誌格式:

tps-20170917145225514-12423.tps (17st Sept 2017) 
tps-20170921134300641-2563.tps (21st Sept 2017) 

我的想法是把所有的日誌進行排序,並提取時間最新的日誌文件,然後從它減去X天像

date -d "10 days" 
一些評估的最早時間

然後刪除早於評估的最早時間的所有日誌。

這些日誌存儲在不同的子目錄中,需要從所有位置刪除。

請幫助我,如果我使用正確的方法或有任何更好的方法來解決這個問題。

感謝 ANKIT

+1

你能只使用日誌輪播呢?它是爲此而構建的。 –

+0

這些日誌是從不同的位置複製的,我不認爲我們可以使用logrotate。 –

回答

0

另一種方法是刪除日誌文件N多天的,例如:

find <dir> -type f ! -newermt '10 days ago' -exec rm {} + 
+0

我無法使用系統日期有兩個原因。 a)日誌從不同的位置複製,所以時間戳發生變化,我們無法控制它。 b)日誌可以是舊的說1歲,我們需要最新的x天。 –

相關問題