logrotate日志切割

一、什么是logrotate

logrotate是Linux系统中一个开源日志管理工具 ,用于自动化管理日志文件。它通过预设规则实现日志文件的切割、压缩、备份和删除,有效防止日志文件无限增长占用磁盘空间。Linux系统下大多自带logrotate服务,无需手动安装(本文档基于CentOS7)。

二、核心功能特性

  1. 切割机制:支持按时间(daily/weekly/monthly)或文件大小(size)触发轮转
  2. 压缩存储:使用gzip标准压缩算法减少存储空间占用
  3. 自动清理:按配置保留指定数量的历史日志文件
  4. 安全操作:采用inode机制处理日志文件,避免影响应用程序

三、配置文件结构

/etc/logrotate.conf 核心配置文件

/etc/logrotate.d/ 日志切割任务目录

四、关键配置参数详解

参数 说明
daily / weekly / monthly 按日期轮转,天/周/月
size 100M 按文件大小轮转
rotate N 旧日志的最大保存数量
compress 压缩旧日志文件
delaycompress 延迟压缩(下一次轮转时压缩)
missingok 日志文件不存在时跳过
notifempty 日志为空时不轮转
create 0640 root root 创建新日志文件的权限
copytruncate 使用拷贝截断模式,复制日志后清空原文件

注意:logrotate按天切割日志并不是固定0点整执行,有5~50分钟的随机延迟,详细可查看/etc/anacrontab文件;可通过 grep 'logrotate' /var/log/cron 命令查看logrotate服务的启动时间

五、日志切割配置示例:

示例1:

/etc/logrotate.d/celery

/data/demo/logs/celery*.log {

create 0640 root root

daily

rotate 30

missingok

notifempty

compress

copytruncate

}

示例2:

/etc/logrotate.d/nginx

/etc/nginx/logs/*.log {

create 0640 nginx root

daily

rotate 15

missingok

notifempty

compress

sharedscripts

postrotate

/bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true

endscript

}

配置解析(示例2):

/etc/nginx/logs/*.log { # 要切割的日志文件,可以使用*匹配多个文件

create 0640 nginx root # 新日志文件的权限

daily # 按天切割

rotate 15 # 旧日志的最大保存数量

missingok # 跳过不存在的日志文件

notifempty # 跳过空的日志文件

compress # 压缩旧日志

sharedscripts # 所有匹配的日志切割完毕后执行一次脚本

postrotate # 执行脚本开始

/bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true # 通知nginx重新打开日志文件

endscript # 执行脚本结束

}

测试配置文件的正确性:

logrotate -d /etc/logrotate.d/celery

强制触发一次切割日志:

logrotate -f /etc/logrotate.d/celery

相关推荐
skywalk81634 小时前
unbound dns解析出现问题,寻求解决之道
运维·服务器·dns·unbound
酉鬼女又兒4 小时前
零基础入门Linux指南:每天一个Linux命令_pwd
linux·运维·服务器
云飞云共享云桌面4 小时前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能
skywalk81634 小时前
走近科学:unbound dns域名服务器自己本地解析出现问题,寻求解决之道
运维·服务器·dns·unbound
zl_dfq4 小时前
Linux 之 【多线程】(pthread_xxx、轻量级进程、原生线程库、线程ID、__thread、线程栈、线程与信号、线程与程序替换)
linux
choke2334 小时前
Python 基础语法精讲:数据类型、运算符与输入输出
java·linux·服务器
袁煦丞 cpolar内网穿透实验室4 小时前
远程调试内网 Kafka 不再求运维!cpolar 内网穿透实验室第 791 个成功挑战
运维·分布式·kafka·远程工作·内网穿透·cpolar
AZ996ZA4 小时前
自学linux的第二十一天【DHCP 服务从入门到实战】
linux·运维·服务器·php
_OP_CHEN4 小时前
【Linux系统编程】(二十八)深入 ELF 文件原理:从目标文件到程序加载的完整揭秘
linux·操作系统·编译·c/c++·目标文件·elf文件
Web极客码5 小时前
WordPress博客关键词
服务器·wordpress·网站加速