logrotate 日志滚动的使用

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: logrotate 日志滚动的使用
最近由于最近上一个了项目,但是项目的本身没有做日志的滚动,导致日志一直在增长,这样下去肯定会撑爆磁盘,导致不可预测的结果   
这个适合logrotate就出场了

作用

 logrotate is designed to ease administration of systems that generate large numbers of log files. It allows automatic rotation, compression, removal,   
  and mailing of log files. Each log file may be handled daily, weekly, monthly, or when it grows too large.

正如man logrotate说的那样,logrotate可以实现自动轮替、压缩、删除日志、并且发邮件的功能

使用

root@49335c6e5ee3:/var/log# logrotate --help
Usage: logrotate [OPTION...] <configfile>
  -d, --debug               Don't do anything, just test (implies -v)
  -f, --force               Force file rotation
  -m, --mail=command        Command to send mail (instead of `/usr/bin/mail')
  -s, --state=statefile     Path of state file
  -v, --verbose             Display messages during rotation
  -l, --log=STRING          Log file or 'syslog' to log to syslog
      --version             Display version information
Help options:
  -?, --help                Show this help message
      --usage               Display brief usage message

也就是说,可以手动的执行 logrotate configfile 文件,那配置文件里的内容怎么设置呢,如下demo:

/var/log/cron.log {
  daily
  rotate 7
  notifempty
  create
  size 1K
  nocompress
  nodateext
  missingok
}

解释说明

image.png

具体的详细说明,参照man logrotate

运行机制

对安装了cron的系统来说,crontab会每天定时执行/etc/cron.daily目录下的脚本,而这个目录下有个文件叫logrotate :

 #!/bin/sh
test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf

我们看到 每天会运行/usr/sbin/logrotate /etc/logrotate.conf 这个命令,

在linux上 文件/etc/logrotate.conf内容如下:

# see "man logrotate" for details
# rotate log files weekly
weekly
# use the syslog group by default, since this is the owning group
# of /var/log/syslog.
su root syslog
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
#compress
# packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
    missingok
    monthly
    create 0664 root utmp
    rotate 1
}
/var/log/btmp {
    missingok
    monthly
    create 0660 root utmp
    rotate 1
}
# system-specific logs may be configured here

我们看到include /etc/logrotate.d,会把/etc/logrotate.d目录下的文件include进来,

所以对于用户来说在/etc/logrotate.d 配置文件,就可以,总结一下

logrotate的配置文件:

/etc/logrotate.d/*   
/etc/logrotate.conf
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
7月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
166 0
|
6月前
|
监控 应用服务中间件 Linux
轻松解决日志文件积压问题:掌握logrotate的技巧
轻松解决日志文件积压问题:掌握logrotate的技巧
438 1
|
4月前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
|
4月前
|
监控 关系型数据库 Linux
Linux日志管理工具:Logrotate(二)
Linux日志管理工具:Logrotate(二)
243 2
|
4月前
|
存储 监控 安全
Linux日志管理工具:Logrotate(一)
Linux日志管理工具:Logrotate(一)
315 0
|
6月前
logrotate 日志文件管理工具介绍和经典案例
logrotate 日志文件管理工具介绍和经典案例
136 0
|
7月前
|
消息中间件 SQL 资源调度
实时计算 Flink版产品使用合集之 Flink on YARN 中使用滚动日志时配置不生效如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7月前
|
应用服务中间件
weblogic配置、修改日志保存目录、配置滚动日志
weblogic配置、修改日志保存目录、配置滚动日志
|
7月前
|
存储 监控 Ubuntu
日志切割工具-Logrotate实现nginx日志切割
日志切割工具-Logrotate实现nginx日志切割
93 0
|
7月前
|
Linux
linux下实现日志切割的两种方法 logrotate
linux下实现日志切割的两种方法 logrotate
351 0