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

简介: 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 时进行轮转。


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

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
11天前
|
机器学习/深度学习 数据可视化
【tensorboard】深度学习的日志信息events.out.tfevents文件可视化工具
【tensorboard】深度学习的日志信息events.out.tfevents文件可视化工具
|
20天前
|
监控 应用服务中间件 Linux
轻松解决日志文件积压问题:掌握logrotate的技巧
轻松解决日志文件积压问题:掌握logrotate的技巧
24 1
|
16天前
|
SQL Oracle 关系型数据库
探索 Linux 命令 `db_archive`:Oracle 数据库归档日志的工具
探索 Linux 中的 `db_archive`,实际与 Oracle 数据库归档日志管理相关。在 Oracle 中,归档日志用于恢复,当在线重做日志满时自动归档。管理员可使用 SQL*Plus 查看归档模式,通过 `RMAN` 进行备份和恢复操作。管理归档日志需谨慎,避免数据丢失。了解归档管理对 Oracle 管理员至关重要,确保故障时能快速恢复数据库。
|
16天前
|
存储 关系型数据库 Linux
探索 `db_printlog`:Linux 下的数据库日志打印工具
`db_printlog`是Linux下用于解析和打印Berkeley DB日志文件的命令行工具,帮助用户以可读格式理解数据库事务和系统事件。要使用它,先安装Berkeley DB,然后通过`db_printlog logfilename`命令分析日志。常见选项包括`-h`(显示帮助)、`-v`(详细输出)和`-f`(跟随日志更新)。注意日志文件权限和大小问题,此工具适用于Berkeley DB,其他数据库系统可能有不同解析工具。
|
18天前
|
SQL 关系型数据库 MySQL
MySQL数据库——索引(3)-索引语法(创建索引、查看索引、删除索引、案例演示),SQL性能分析(SQL执行频率,慢查询日志)
MySQL数据库——索引(3)-索引语法(创建索引、查看索引、删除索引、案例演示),SQL性能分析(SQL执行频率,慢查询日志)
18 2
|
20天前
|
SQL 监控 关系型数据库
解密MySQL二进制日志:深度探究mysqlbinlog工具
解密MySQL二进制日志:深度探究mysqlbinlog工具
42 3
|
1月前
|
存储 监控 Ubuntu
Linux系统之GoAccess实时Web日志分析工具的基本使用
【5月更文挑战第22天】Linux系统之GoAccess实时Web日志分析工具的基本使用
50 1
|
21天前
|
SQL 监控 关系型数据库
|
15天前
|
SQL 数据采集 DataWorks
DataWorks产品使用合集之pyodps的线程限制是什么意思
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
15天前
|
DataWorks 数据可视化 安全
DataWorks产品使用合集之SLS日志中新增了存在iotId这个字段,同步的时候怎么手动增加
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。