【问题标题】:Merge last 7 days log files using shell script使用 shell 脚本合并最近 7 天的日志文件
【发布时间】:2015-10-18 14:25:33
【问题描述】:

我在 tomcat 日志中有日志文件,我想编写一个脚本来合并最近 7 天的日志文件。我是 shell 脚本的新手。

请在这方面帮助我。

我的日志文件看起来像 catalina.2015-04-23.log catalina.2015-06-05.log catalina.2015-06-04.log

【问题讨论】:

    标签: linux shell unix


    【解决方案1】:

    这将生成 1 周的合并日志文件

    for a in `seq 6 -1 0`;
    do
        dt=`date "+%F" --date=" -"$a" days"`;
        f=$dt".log";
        cat $f >> "1_week.log";
    done;
    

    【讨论】:

      【解决方案2】:

      为了避免使用明确的日期,我假设文件最后一次修改是在他们记录的日期,允许使用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) - 确保我们从昨天到一周前开始。然后将catenate 文件放入this_weeks_logs.log

      更多关于-mtime选项的时间范围可以在here找到

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-11-16
        • 2011-04-27
        • 2013-11-11
        • 2013-10-04
        • 1970-01-01
        • 2019-07-26
        • 1970-01-01
        相关资源
        最近更新 更多