用logrote和split分割nohup.out日志

简介: 用logrote和split分割nohup.out日志

背景:在生产环境中使用 nohup 运行 JAR 包时,会产生大量日志文件,导致磁盘存储占用过高,例如每天可能产生约30GB的日志数据。

解决方案:

  1. 使用 split 分割日志文件:
this_path=$(cd /app/query4a/; pwd)
echo $this_path
current_date=$(date -d "-1 day" "+%Y%m%d")
echo $current_date
cp /app/query4a/nohup.out /app/query4a/split_log/${current_date}.log
cat /dev/null > /app/query4a/nohup.out
  • 缺点:当日志量较大时,执行速度较慢,并且清空后的 nohup 文件需要一段时间才能开始存储新的日志数据。
  1. 使用 logrotate 分割并压缩日志:
  • 创建 /etc/logrotate.d/query4a 脚本,内容如下:
/app/query4a/nohup.out {
    daily             # 每天分割一次
    #size 5M          # 源文件小于5M时不分割
    rotate 180        # 保留180个旧日志文件
    copytruncate      # 复制并清空日志文件,而不是创建新文件
    notifempty        # 当日志文件为空时不分割
    missingok         # 如果日志文件不存在,则忽略错误
    dateext           # 切割后的文件添加日期作为后缀
    dateyesterday     # 使用昨天的日期作为分割后日志的后缀
    dateformat -%Y-%m-%d  # 指定日期格式
    compress          # 压缩旧日志文件
    create 0644 appuser appuser  # 创建新日志文件的权限和所属用户
}
  • 该配置会每天对日志文件进行分割,并保留180个旧日志文件。压缩旧日志文件以节省磁盘空间,并确保新的日志文件会及时生成。
  1. 在启动程序时将日志输出重定向到 /dev/null
nohup java -jar xx.jar > /dev/null 2>&1 &
  • 如果不希望生成 nohup.out 日志文件,可以在启动程序时将日志输出重定向到 /dev/null。这样可以避免产生大量的日志文件,并减少对磁盘存储的影响。
相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
Java Windows
SpringBoot:Windows平台下JAR包的启动,停止和日志分割脚本
SpringBoot:Windows平台下JAR包的启动,停止和日志分割脚本
SpringBoot:Windows平台下JAR包的启动,停止和日志分割脚本
|
Java Maven 索引
Logback:同时按照日期和大小分割日志(最新日志可以不带日期或数字)
Logback:同时按照日期和大小分割日志(最新日志可以不带日期或数字)
Logback:同时按照日期和大小分割日志(最新日志可以不带日期或数字)
log4j支持同时按日期和文件大小分割日志
log4j支持同时按日期和文件大小分割日志
|
应用服务中间件
Tomcat日志实现每天切割(通过Cronolog实现日志分割)
Tomcat日志,如果不做切割处理,会导致日志输出会越来越大,不方便后续的问题追踪。 所以我们对日志文件进行按天进行分割。
1097 1
Tomcat日志实现每天切割(通过Cronolog实现日志分割)
|
安全 应用服务中间件 nginx
Linux-日志系统与日志分割
Linux-日志系统与日志分割
473 0
|
分布式计算 Java Hadoop
python 日志分割器 大文本处理
python 日志分割器 大文本处理
313 0
log4j支持同时按日期和文件大小分割日志
log4j支持同时按日期和文件大小分割日志
log4j支持同时按日期和文件大小分割日志
|
存储 数据挖掘 应用服务中间件
【Nginx】如何按日期分割Nginx日志?看这一篇就够了!!
Nginx是没有以日期格式作为文件名来存储的,也就是说,Nginx不像Tomcat,每天自动生成一个日志文件,所有的日志都是以一个名字来存储,时间久了日志文件会变得很大。这样非常不利于分析。虽然nginx没有这个功能但我们可以写一个小脚本配合计划任务来达到这样的效果。即让Nginx每天产生一个日志文件,方便我们进行后续的数据分析。
686 0
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
482 9