我在tomcat日志中有日志文件,我想写一个脚本来合并最近7天的日志文件。我是shell脚本的新手。使用shell脚本合并最近7天的日志文件
请在这方面帮助我。
我的日志文件看起来像catalina.2015-04-23.log catalina.2015-06-05.log catalina.2015-06-04.log
我在tomcat日志中有日志文件,我想写一个脚本来合并最近7天的日志文件。我是shell脚本的新手。使用shell脚本合并最近7天的日志文件
请在这方面帮助我。
我的日志文件看起来像catalina.2015-04-23.log catalina.2015-06-05.log catalina.2015-06-04.log
这将产生合并日志文件1周
for a in `seq 6 -1 0`;
do
dt=`date "+%F" --date=" -"$a" days"`;
f=$dt".log";
cat $f >> "1_week.log";
done;
为了避免使用显式日期,我认为这些文件对他们登录的日期是最后一次修改,允许使用find
和一个班轮此:
find . -name '*catalina*' -daystart -mtime -6 -mtime +0 -exec cat '{}' >> this_weeks_logs.log \;
说明:
查找本地文件夹中的所有文件.
,其中-name
分段catalina
。 取得最多6 * 24小时前更改的文件-mtime -6
以及最少0小时前-mtime +0
(使其成为7天的间隔),但是从当天开始计算小时数-daystart
(即今天00:00 :00) - 确保我们从昨天开始到一周前。然后CON cat
enate文件放到this_weeks_logs.log
更多的-mtime
选项的时间范围内,可以发现here