2017-09-26 77 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天。 –

相关问题