博客
关于我
日志切分神器--logrotate
阅读量:398 次
发布时间:2019-03-06

本文共 1555 字,大约阅读时间需要 5 分钟。

Blog:

概述

还在自己写定时切分日志的脚本?试试系统自带的logrotate工具吧!

logrotate是一个日志文件管理工具。用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到转储的作用,便于节省磁盘空间。

配置

配置文件

Linux系统默认安装logrotate,默认配置文件如下:

  • /etc/logrotate.conf:主配置文件,logrotate.d是一个目录,该目录里的所有文件都会被主动的读入/etc/logrotate.conf中执行。
  • /etc/logrotate.d/:用于存放不同程序自定义切分配置

运行原理

Logrotate是基于CRON来运行的,其脚本是/etc/cron.daily/logrotate,日志轮转是系统自动完成的。

实际运行时,Logrotate会调用配置文件/etc/logrotate.conf。可以在/etc/logrotate.d目录里放置自定义好的配置文件,用来覆盖Logrotate的缺省值。

/etc/cron.daily/logrotate脚本如下:

#!/bin/sh/usr/sbin/logrotate /etc/logrotate.confEXITVALUE=$?if [ $EXITVALUE != 0 ]; then    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"fiexit $EXITVALUE

配置参数说明

配置参数 说明
create 自动创建新的日志文件,新的日志文件具有和原来的文件相同的权限;因为日志被改名,因此要创建一个新的来继续存储之前的日志
rotate n 保留多少个日志文件(轮转几次),n可以是0,1,2,3...,如果n为0,则没有备份。
dateext 就是切割后的日志文件以当前日期为格式结尾
compress 是否通过gzip压缩转储以后的日志文件,如xxx.log-20201111.gz
nocompress 不做gzip压缩处理,与compress互斥
missingok 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。
notifempty 如果日志文件为空,轮循不会进行。
create 0664 nginx root 以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件。
postrotate 在所有其它指令完成后,postrotate里面指定的命令将被执行。

lograte命令

语法格式如下:

logrotate [OPTION...] 

参数说明

参数 说明
-d debug模式,测试配置文件是否有错误。
-f 强制转储文件。
-m 压缩日志后,发送日志到指定邮箱。
-s 使用指定的状态文件。
-v 显示转储过程。

案例

以nginx日志切分为例,创建/etc/logrotate.d/nginx

/var/log/nginx/*log {    create 0664 nginx root    daily    rotate 10    dateext    missingok    notifempty    compress    sharedscripts    postrotate        /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true    endscript}

手动强制切分日志:

/usr/sbin/logrotate -d -f /etc/logrotate.d/nginx

效果如下:

转载地址:http://glykz.baihongyu.com/

你可能感兴趣的文章
【活动】直播揭秘<如何从0开发HarmonyOS硬件>
查看>>
Unity平台 | 快速集成华为性能管理服务
查看>>
详细实例教程!集成华为虚假用户检测,防范虚假恶意流量
查看>>
对模拟器虚假设备识别能力提升15%!每日清理大师App集成系统完整性检测
查看>>
使用Power BI构建数据仓库与BI方案
查看>>
pytest封神之路第二步 132个命令行参数用法
查看>>
Django认证系统并不鸡肋反而很重要
查看>>
快用Django REST framework写写API吧
查看>>
tep用户手册帮你从unittest过渡到pytest
查看>>
12张图打开JMeter体系结构全局视角
查看>>
Spring Boot 2.x基础教程:构建RESTful API与单元测试
查看>>
[UWP 自定义控件]了解模板化控件(1):基础知识
查看>>
UWP 自定义控件:了解模板化控件 系列文章
查看>>
[UWP]从头开始创建并发布一个番茄钟
查看>>
在 Azure 上执行一些简单的 python 工作
查看>>
WinUI 3 Preview 3 发布了,再一次试试它的性能
查看>>
使用命令把SpringBoot项目打包成可运行的jar包(简洁,操作性强)
查看>>
List数组排序
查看>>
VMware vSphere 离线虚拟机安装 BIND 9
查看>>
说说第一份工作
查看>>