Linux------------logrotate日志切割工具

目录

  • 一、关于日志切割
  • 二、配置文件详解
    • 2.1 配置文件说明
    • 2.2 常见配置参数
    • 2.3 定时任务
  • 三、 nginx日志模板
    • 3.1 关于USR1信号解释

转发https://www.cnblogs.com/clsn/p/8428257.html

一、关于日志切割

  日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题。除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事。
  logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件。例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月的日志。配置完后,logrotate的运作完全自动化,不必进行任何进一步的人为干预。

二、配置文件详解

centos系统从7.2以后默认自带logrotate,不需要安装
主配置目录:/etc/logrotate.conf
配置目录:/etc/logrotate.d

2.1 配置文件说明

2.2 常见配置参数

2.3 定时任务

示例:

[[email protected] ~]# cat /etc/cron.daily/logrotate
#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

三、 nginx日志模板

线上使用模板:

[[email protected] nginx]# cat /etc/logrotate.d/nginx
/var/log/nginx/*.log {
    daily
    rotate 5
    missingok
    notifempty
    create 644 www www
    postrotate
      if [ -f /var/run/nginx.pid ]; then
          kill -USR1 `cat /var/run/nginx.pid`
      fi
endscript
}

3.1 关于USR1信号解释

摘自: http://www.xuebuyuan.com/323422.html

USR1亦通常被用来告知应用程序重载配置文件;例如,向Apache HTTP服务器发送一个USR1信号将导致以下步骤的发生:停止接受新的连接,等待当前连接停止,重新载入配置文件,重新打开日志文件,重启服务器,从而实现相对平滑的不关机的更改。内容摘自wiki:http://zh.wikipedia.org/wiki/SIGUSR1%E5%92%8CSIGUSR2  

  对于USR1和2都可以用户自定义的,在POSIX兼容的平台上,SIGUSR1和SIGUSR2是发送给一个进程的信号,它表示了用户定义的情况。它们的符号常量在头文件signal.h中定义。在不同的平台上,信号的编号可能发生变化,因此需要使用符号名称。

kill -HUP pid 或者 killall -HUP pName:

  其中pid是进程标识,pName是进程的名称。
  如果想要更改配置而不需停止并重新启动服务,可以使用上面两个命令。在对配置文件作必要的更改后,发出该命令以动态更新服务配置。根据约定,当你发送一个挂起信号(信号1或HUP)时,大多数服务器进程(所有常用的进程)都会进行复位操作并重新加载它们的配置文件。

原文地址:https://www.cnblogs.com/wangchengshi/p/12213111.html

时间: 2024-11-08 21:27:44

Linux------------logrotate日志切割工具的相关文章

Linux自带 Logrotate 日志切割工具配置详解

Logrotate 程序是一个日志文件管理工具.用于分割日志文件,压缩转存.删除旧的日志文件,并创建新的日志文件,下面就对logrotate日志轮转的记录: 1.1 Logrotate配置文件介绍 Linux系统默认安装logrotate,默认的配置文件: /etc/logrotate.conf /etc/logrotate.d/ logrotate.conf:为主配置文件logrotate.d:为配置相关子系统,用于隔离每个应用配置(Nginx.PHP.Tomcat...)  Logrotat

linux下日志管理工具--logrotate

配置 /usr/local/nginx/logs/*.log { daily dateext rotate 1 olddir /usr/local/nginx/other/logs missingok notifempty compress sharedscripts postrotate /bin/kill -USR1 $(cat /var/run/nginx.pid 2>/dev/null) 2>/dev/null ||: endscript } dateext:文件后缀是日期格式,也就是

Linux 日志切割工具cronolog

一.前言 二.cronolog 简介 三.cronolog 特点 四.cronolog 安装 五.cronolog 使用 六.cronolog 总结 注,操作系统 CentOS 6.4 x86_64,软件版本 cronolog 1.6.2,软件下载http://cronolog.org/download/index.html. 一.前言 大家都知道apache服务器,默认日志文件是不分割的,一个整文件既不易于管理,也不易于分析统计.本博文主要讲解Web服务器日志切割工具cronolog,下面我们

Linux的日志文件管理工具——logrotate(linux日志切割与轮循)

日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题.除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事. Linux日志切割 现代的Linux版本都有一个小程序,名为logrotate,用来帮助用户管理日志文件,它以自己的守护进程工作.logrotate周期性地旋转日志文件,可以周期性地把每个日志文件重命名成一个备份名字,然后让它的守护进程开始使用一个日志文件的新的拷贝.

linux系统日志自动切割工具----logrotate

参考资料 :https://www.cnblogs.com/kevingrace/p/6307298.html 对于Linux系统安全来说,日志文件是极其重要的工具.不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分Nginx日志之类的CRON脚本,大家似乎遗忘了Logrotate,争相发明自己的轮子,这真是让人沮丧啊!就好比明明身边躺着现成的性感美女,大家却忙着自娱自乐,罪过!logrotate程序是一个日志文件管理工具.用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到

logrotate日志切割

最近在搭建日志收集平台,将linux的部分日志收集到elasticsearch上通过kibana进行搜索展现,基本上是标准的ELK架构,但是agent端复用了已有的flume.在功能测试的时候,是将本地messages日志备份出来对备份的日志进行了切割测试.经过一周测试终于完成了,当时的内心是: 日志的切割,采用了linux自带的logrotate进行日志的切割.配置就不放了,主要就是去切割指定的文件,然后将切割的文件转移到agent收集工具监控的目录,然后将文件权限改一下就行.当功能性测试通过

logrotate日志切割配置

1 logrotate介绍 logrotate软件是一个日志管理工具,用于非分隔日志,删除旧的日志文件,并创建新的日志文件,起到"转储作用",可以为系统节省磁盘空间.一般centos系统已经自带安装好了. logrotate是基于crontab运行的,其脚本是/etc/cron.daily/logtotate,日志轮转是系统自发完成的,实际运行时,logrotate会调用配置文件/etc/logrotate.conf.可以在/etc/logrotate.d目录里放置自定义好的配置文件,

rsyslog 结合logrotate日志切割处理

需求 公司日志系统收集规范为: /var/log/业务名/业务名+域名.log(不带日期) /var/log/业务名/业务名+域名-2017-04-25.log(为前一天的日期.业务不做压缩,由运维统一处理) /var/log/业务名 目录的权限为特定用户(系统中的uid.gid固定) 现状 harbor业务由docker容器启用logrotate来收集日志,日志生成规则为/var/log/日期/业务名.log 需要改造容器的logrotate配置实现要求,初期设想是通过logrotate直接实

logrotate日志管理工具

logrotate是一个日志文件管理工具.用来把旧文件轮转.压缩.删除,并且创建新的日志文件.我们可以根据日志文件的大小.天数等来转储,便于对日志文件管理,一般都是通过cron计划任务来完成的. 1. 配置实例 /var/log/messages {     rotate 5     weekly     postrotate         /sbin/killall -HUP syslogd     endscript }   "/var/log/httpd/access.log"