首页 > 其他分享 >将日志的每天都切割成单独的一个日志文件

将日志的每天都切割成单独的一个日志文件

时间:2024-01-19 10:03:56浏览次数:33  
标签:LOG 切割成 单独 日期 awk FILE 格式 日志

要将日志文件按照日期精确分割成每天一个文件,我们需要知道日志中,日期的精确格式,并且日志应该是按时间顺序排列的。这里给出一个基于Apache/Nginx日志格式(每行开始有标准的日期和时间戳)的例子脚本。我们将使用awkdate命令配合处理:

#!/bin/bash

# 指定日志文件夹路径
LOG_DIR="/path/to/log/folder"

# 设置日志格式,这里假设是Apache/Nginx通用日志格式 %d/%b/%Y:%H:%M:%S
LOG_DATE_FORMAT="%d/%b/%Y:%H:%M:%S"

# 遍历日志文件夹中的所有文件
for LOG_FILE in "$LOG_DIR"/*.log; do
    while read -r LINE; do
        # 提取每行的日期部分
        DATE_STR=$(echo "$LINE" | awk '{ print $4" "$5 }')
        
        # 将提取的日期字符串转换为Unix时间戳
        TIMESTAMP=$(date -d "$DATE_STR" +%s)
        
        # 计算出日期对应的日志文件名
        DAY_LOG_FILE="${LOG_DIR}/${LOG_FILE##*/}.$(date -d "@$TIMESTAMP" +%Y-%m-%d).log"

        # 写入对应日期的日志文件
        echo "$LINE" >> "$DAY_LOG_FILE"
    done < "$LOG_FILE"
done

echo "Logs have been split by day."

# 注意:这个脚本依赖于准确的日志格式和正确的date解析设置。
# 如果日志格式不是Apache/Nginx样式,请修改LOG_DATE_FORMAT和日期提取部分的awk命令。

# 对于非常大的日志文件,此脚本可能会消耗大量内存,
# 在生产环境中,建议使用更高效的方法,如使用流式处理工具如awk本身或者使用专门的日志分析工具如Logstash等。

这个脚本逐行读取日志文件,对每行提取日期,然后将该行写入对应日期的日志文件中。但请注意,对于非常大的日志文件,逐行处理可能效率较低,而且会占用较多内存。在处理大规模日志时,推荐采用能处理流式数据的方式,比如直接在awk内部完成全部处理,或者利用专门的日志收集和处理工具,如Logstash等。同时,一定要确保日志格式匹配,否则日期提取将会失败。

标签:LOG,切割成,单独,日期,awk,FILE,格式,日志
From: https://blog.51cto.com/u_16161880/9325170

相关文章

  • ELK日志系统
    ELK ELK概述#ELK简介ELK平台是一套完整的日志集中处理解决方案,将ElasticSearch、Logstash和Kiabana三个开源工具配合使用,完成更强大的用户对日志的查询、排序、统计需求。●ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类......
  • ELK日志分析系统
    日志管理方案:服务器数量较少时:直接登录到目标服务器捞日志查看-->通过rsyslog或shell/python等脚本实现日志收集,并集中保存到统一的日志服务器服务器数量较多时:ELK大型的日志系统,实现日志收集、日志存储、日志检索和分析容器环境:EFKLoki+GranfanaELK组件:Logstash:收......
  • 使用日志类库log4net.dll出现代码loginfo.IsInfoEnabled等于false的解决办(转)
    按语:   工程进行了裁剪,发现原来的日志功能失效了,调试时发现loginfo.IsInfoEnabled一直为false。后参考下面博客内容修改了log4net.config的文件属性修改,解决问题。===========================================================================在使用wpf开发日志方面......
  • 手机崩溃日志的查找与分析
    手机崩溃日志的查找与分析摘要本文介绍了一款名为克魔助手的iOS应用日志查看工具,该工具可以方便地查看iPhone设备上应用和系统运行时的实时日志和崩溃日志。同时还提供了崩溃日志的分析查看模块,可以对苹果崩溃日志进行符号化、格式化和分析,极大地简化了开发者的调试工作。引言......
  • 使用过滤器记录api接口访问时长并记录日志
    usingERP.Helper;usingERP.Models.User;usingSystem;usingSystem.Diagnostics;usingSystem.Web;usingSystem.Web.Http.Controllers;usingSystem.Web.Http.Filters;usingActionFilterAttribute=System.Web.Http.Filters.ActionFilterAttribute;usingLogger......
  • Druid作为数据源(连接池、过滤器、日志)
    Druid作为数据源(连接池、过滤器、日志)druid基本参数介绍name:数据源名称如果存在多个数据源,监控的时候可以通过名字来区分开来如果没有配置,将会生成一个名字,格式是"DataSource-"+System.identityHashCode(this)jdbcUrl:连接数据库的url,不同数据库不一样username:连接......
  • MySQL5.7开启查询日志和审计日志
    Mysql审计日志1、下载mariadb-5.5.56-linux-x86_64.tar.gz解压获取server_audit.so插件下载链接:https://downloads.mariadb.org/mariadb-galera/5.5.56/#file_type=source2、登录MySQL,执行命令获取MySQL的plugin目录mysql>SHOWGLOBALVARIABLESLIKE'plugin_dir';+-------......
  • C# 自定义日志中间件 ASP.NET Core Web API
    自定义日志中间件usingMicrosoft.AspNetCore.Builder;usingMicrosoft.AspNetCore.Http;usingMicrosoft.AspNetCore.Http.Extensions;usingMicrosoft.Extensions.DependencyInjection;usingMicrosoft.Extensions.Logging;usingNewtonsoft.Json;usingSystem;usingS......
  • 基于Venn-Abers预测器的系统日志异常检测方法_顾兆军
    title:基于Venn-Abers预测器的系统日志异常检测方法_顾兆军banner_img:https://cdn.studyinglover.com/pic/2023/12/334c0c129076533308cbc7e03f8c55be.pngdate:2024-1-1519:40:00tags:-机器学习基于Venn-Abers预测器的系统日志异常检测方法_顾兆军收集日志信息、日志......
  • 网络-华为、思科交换机配置TFTP自动备份、NTP时间同步、SYSLOG日志同步功能
    前言如今园区中交换机越来越多,传统的查看日志的方式是远程到交换机在命令行中查看,但是logbuffer中保存的容量有限,也不方便查询,耗费运维人员大量的经理,不好集中管理,syslog就为解决此问题,可以搭建一台syslog服务器(我使用群辉自带的功能),将日志集中收集起来。同样的交换机的配置也......