logrotate 日志文件管理工具介绍和经典案例

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: logrotate 日志文件管理工具介绍和经典案例

`logrotate` 是一个日志文件管理工具,用于定期轮转、压缩和删除日志文件,以防止日志文件无限增长导致磁盘空间耗尽。下面是 `logrotate` 的简单介绍和一些经典例子:

1.使用介绍

1. 配置文件:`logrotate` 的配置文件通常位于 `/etc/logrotate.conf` 或者 `/etc/logrotate.d/` 目录下,每个配置文件对应一个日志文件的轮转设置。


2. 轮转周期:可以通过配置文件指定日志文件的轮转周期,例如每天、每周或每月等。


3. 保留备份:可以设置保留多少个轮转后的备份文件,避免占用过多磁盘空间。


4. 压缩选项:可以配置是否对轮转后的日志文件进行压缩处理。

2.经典例子

2.1 基本配置示例

/var/log/myapp.log {
   daily
   rotate 7
   compress
   missingok
   notifempty
}

上面参数说明:

  - `daily`:每天轮转一次。

  - `rotate 7`:保留最近 7 个轮转后的备份文件。

  - `compress`:对轮转后的备份文件进行压缩。

  - `missingok`:如果日志文件不存在,则忽略错误继续。

  - `notifempty`:如果日志文件为空,则不轮转。

2.2 按大小轮转示例【推荐】

 

/var/log/myapp.log {
   size 100M
   rotate 5
   compress
}

上面参数说明:

  - `size 100M`:当日志文件达到 100MB 时进行轮转。

  - `rotate 5`:保留最近 5 个轮转后的备份文件。

- `compress`:对轮转后的备份文件进行压缩。

2.3 包含额外配置文件

在 `/etc/logrotate.conf` 中可以使用 `include` 指令包含其他配置文件:

include /etc/logrotate.d/*

这些例子展示了 `logrotate` 的基本用法和配置方式。根据实际需求和日志文件的特点,可以灵活配置 `logrotate`,以确保日志文件得到有效管理和轮转。

2.4 个人工作中使用案例

(1)自动轮转:创建文件bcsc-platfrom-system-start,文件内容如下,然后把文件丢到这个目录下面:/etc/logrotate.d/  系统就会自动轮询。

/home/facePay/platform-9022/logs/console.log{
 
    copytruncate
 
    rotate 50
 
    missingok
 
    compress
 
    size 100M
 
}

(2)手动轮转:跟平常开发项目一样,想手动测试一次定时任务,就用下面命令进行操作:

logrotate --force  /etc/logrotate.d/bcsc-platfrom-system-start

上面参数说明:


  - `copytruncate` 参数是用于告诉 `logrotate` 在轮转日志文件时采取的一种特殊操作。通常,在轮转日志文件时,`logrotate` 会创建一个新的空日志文件来接收新的日志内容,然后将旧的日志文件进行重命名或者压缩。但是在某些情况下,如果日志文件正在被某个进程打开并写入,直接轮转会导致该进程继续往已经重命名的日志文件中写入数据,导致日志丢失或者混乱。


这时候就可以使用 `copytruncate` 参数,它的作用是在轮转日志文件时,`logrotate` 会首先创建一个新的空日志文件来接收新的日志内容,然后将旧的日志文件进行重命名,但不断开与原日志文件相关的文件描述符,而是使用 `cp` 命令来复制原始文件的内容到新文件,再使用 `truncate` 命令将原始文件截断为0字节,这样就能保证日志文件的连续性,避免了因为关闭日志文件导致的日志丢失或者混乱。


因此,`copytruncate` 参数在某些需要连续性的日志文件轮转场景中非常有用,可以确保日志文件在轮转过程中不会丢失任何日志信息。



  - `rotate 50`:保留最近 50 个轮转后的备份文件。

  - `compress`:对轮转后的备份文件进行压缩。

  - `missingok`:如果日志文件不存在,则忽略错误继续。

  - `notifempty`:如果日志文件为空,则不轮转。


  - `size 100M`:当日志文件达到 100MB 时进行轮转。


介绍完毕,感谢阅读,如果文章对您有帮忙,麻烦点个赞。

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
2月前
|
运维 安全 数据可视化
日志审查安排工具实战攻略:中小团队如何通过日志审查安排工具建立可控、安全的审查机制?
在审计敏感时代,日志审查安排工具成为安全运维与合规管理的关键利器。它实现审查任务的流程化、周期化与可视化,支持多系统协作、责任到人,确保“可控、可查、可追”的日志治理。工具如板栗看板、Asana、Monday 等提供任务调度、问题闭环与合规对接能力,助力企业构建高效、透明的日志审查体系,提升安全与合规水平。
|
3月前
|
JavaScript API 开发工具
HarmonyOS NEXT实战:日志工具
本文介绍了在HarmonyOS Next应用开发中,如何封装一个简单易用的日志工具LoggerKit。通过使用系统提供的HiLog API,开发者可以灵活输出不同级别的日志信息(DEBUG、INFO、WARN、ERROR、FATAL),用于分析应用运行状态和调试逻辑问题。文章详细说明了日志级别、参数配置及使用注意事项,并提供了完整的TypeScript封装示例代码,便于实际项目集成与应用调试。
99 0
|
8月前
|
存储 人工智能 JSON
RAG Logger:专为检索增强生成(RAG)应用设计的开源日志工具,支持查询跟踪、性能监控
RAG Logger 是一款专为检索增强生成(RAG)应用设计的开源日志工具,支持查询跟踪、检索结果记录、LLM 交互记录和性能监控等功能。
367 7
RAG Logger:专为检索增强生成(RAG)应用设计的开源日志工具,支持查询跟踪、性能监控
|
10月前
|
前端开发 数据处理 Android开发
Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍
本文深入探讨了Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍,以及具体操作步骤、常见问题解决、高级调试技巧、团队协作中的调试应用和未来发展趋势,旨在帮助开发者提高调试效率,提升应用质量。
276 8
|
10月前
|
监控 安全 网络安全
使用EventLog Analyzer日志分析工具监测 Windows Server 安全威胁
Windows服务器面临多重威胁,包括勒索软件、DoS攻击、内部威胁、恶意软件感染、网络钓鱼、暴力破解、漏洞利用、Web应用攻击及配置错误等。这些威胁严重威胁服务器安全与业务连续性。EventLog Analyzer通过日志管理和威胁分析,有效检测并应对上述威胁,提升服务器安全性,确保服务稳定运行。
292 2
|
10月前
|
运维 Prometheus 监控
特定用途的日志分析工具
【10月更文挑战第20天】
438 5
|
10月前
|
存储 机器学习/深度学习 传感器
商业日志分析工具
【10月更文挑战第20天】
225 5
|
10月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
2916 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
9月前
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
252 9
|
7月前
|
存储 SQL 关系型数据库
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log、原理、写入过程;binlog与redolog区别、update语句的执行流程、两阶段提交、主从复制、三种日志的使用场景;查询日志、慢查询日志、错误日志等其他几类日志
621 35
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log