当前位置: 首页 > news >正文

linux日志管理工具logrotate配置

linux日志管理工具logrotate配置

  • logrotate介绍
  • logrotate配置讲解
  • 主配置文件解释(/etc/logrotate.conf)
  • logrotete 命令参数
  • 添加配置
  • 以添加一个nginx配置为例
  • 强制启动配置

logrotate介绍

logrotate是centos自带工具,其他操作系统可能需要自行安装。logrotate用来进行日志切割和定期删除。
logrotate通过简单配置,帮助我们实现日志切割,以及对久远日志的删除,从而避免单个日志文件过大,以及众多的日志文件占用存储空间。

logrotate配置讲解

logrotate是基于crond服务(定时任务)来运行的

/etc/logrotate.conf(主配置)和/etc/logrotate.d/*(子配置)

/etc/logrotate.conf为全局配置,在logrotate.conf中包含:include /etc/logrotate.d,用于加载子配置文件,/etc/logrotate.d/目录下为具体配置,一般以服务名称命名,比如nginx,mysql,yum等,
当主配置和子配置有冲突时,以子配置的规则为准。

主配置文件解释(/etc/logrotate.conf)

cat /etc/logrotate.conf
#文件内容如下


# see "man logrotate" for details
# rotate log files daily
#所有的日志文件,每天滚动一次
daily# keep 4 daily worth of backlogs
#日志发生滚动后,指定备份日志文件保存多少个副本(权限不变)
rotate 4# create new (empty) log files after rotating old ones
#是否创建一个空的新的日志文件
create# use date as a suffix of the rotated file
#指定滚动文件的后缀是当前日期
dateext# uncomment this if you want your log files compressed
#是否对滚动后的日志进行压缩
#compress# RPM packages drop log rotation information into this directory
#加载子配置文件
include /etc/logrotate.d#######以下是两个子配置
# no packages own wtmp and btmp -- we'll rotate them here
#指定对特定的日志文件的滚动规则
/var/log/wtmp {monthly                 #一月滚动一次create 0664 root utmp   #指定滚动后创建的新文件的权限为0644,数组为root,属组为utmpminsize 1M             #指定文件的值小于1M不滚动   rotate 1                #指定保留几个备份副本}/var/log/btmp {missingok   #如果日志文件不存在发送错误消息monthlycreate 0600 root utmprotate 1}

logrotete 命令参数

logrotate [-dv] [-f|--force] [-s|--state file] config_file...
-d显示配置过程
-f强制启动logrotate
-s使用指定的状态文件
config_file具体的配置文件

添加配置

基于原有的配置新增(主配置或者子配置)
这种方式是基于计划任务:/etc/cron.daily/logrotate

[root@local logrotate.d]# cat /etc/cron.daily/logrotate
#!/bin/sh/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

该定时任务使用主配置文件,主配置文件中又包含了/etc/logrotage.d/中的子配置
所以在主配置文件中添加或者子配置文件夹中添加配置均可

以添加一个nginx配置为例

cd /etc/logrotate.d/
vi nginx

添加如下内容

/usr/local/nginx/logs/*.log {daily# 每天轮询rotate 7# 最多保存七个文件nocompress# 对切割后的日志文件不进行压缩copytruncate# 用于还在打开中的日志文件,把当前日志备份并截断missingok# 如果日志不存在,不提示错误,继续处理下一个dateext# 使用日期作为日志轮替文件的后缀,如secure-20130605dateformat.%Y-%d-%m# 格式化日志文件名称sharedscripts# 在此关键宇之后的脚本只执行一次postrotateif [ -f /usr/local/nginx/sbin/nginx-tengine.pid ]; thenkill -USR1 `cat /usr/local/nginx/sbin/nginx-tengine.pid`fiendscript
}

强制启动配置

logrotate  -vf nginx
[root@local logrotate.d]# logrotate -vf nginx 
reading config file nginx
Allocating hash table for state file, size 15360 BHandling 1 logsrotating pattern: /usr/local/nginx/logs/*.log  forced from command line (7 rotations)
empty log files are rotated, old logs are removed
considering log /usr/local/nginx/logs/access.loglog needs rotating
considering log /usr/local/nginx/logs/error.loglog needs rotating
rotating log /usr/local/nginx/logs/access.log, log->rotateCount is 7
Converted '.%Y-%d-%m' -> '.%Y-%d-%m'
dateext suffix '.2023-07-03'
glob pattern '.[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]'
glob finding old rotated logs failed
rotating log /usr/local/nginx/logs/error.log, log->rotateCount is 7
Converted '.%Y-%d-%m' -> '.%Y-%d-%m'
dateext suffix '.2023-07-03'
glob pattern '.[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]'
glob finding old rotated logs failed
copying /usr/local/nginx/logs/access.log to /usr/local/nginx/logs/access.log.2023-07-03
truncating /usr/local/nginx/logs/access.log
copying /usr/local/nginx/logs/error.log to /usr/local/nginx/logs/error.log.2023-07-03
truncating /usr/local/nginx/logs/error.log
running postrotate script

执行命令之后出现如上信息,并且在nginx日志目录增加了日志的轮替文件如下:

access.log  access.log.2023-07-03  error.log  error.log.2023-07-03  

其中带日期后缀的,就是轮替日志文件。

相关文章:

linux日志管理工具logrotate配置

linux日志管理工具logrotate配置logrotate介绍logrotate配置讲解主配置文件解释(/etc/logrotate.conf)logrotete 命令参数添加配置以添加一个nginx配置为例强制启动配置logrotate介绍 logrotate是centos自带工具,其他操作系统可能需要自行安装。logrotate用来进行日…...

[ C++ ] 设计模式——单例模式

目录 1.设计模式: 2.单例模式 饿汉模式 懒汉模式 饿汉模式和懒汉模式的优缺点 1.设计模式: 设计模式(Design Pattern)是一套被反复使用,多数人只晓得,经过分类的,代码设计经验的总结。为什么会产生设计模式这样的…...

HACKTHEBOX——Help

nmap可以看到对外开放了22,80,3000端口可以看到80端口和3000端口都运行着http服务,先从web着手切入TCP/80访问web提示无法连接help.htb,在/etc/hosts中写入IP与域名的映射打开只是一个apache default页面,没什么好看的使用gobuster扫描网站目…...

Qt广告机客户端(下位机)

目录功能结构adClient.promain.cppadclient.h 客户端adclient.cpp 客户端addate.h 时间处理addate.cpp 时间处理adsocket.h 客户端Socket处理adsocket.cpp 客户端Socket处理weather.h 天气信息处理weather.cpp 天气信息处理rollmassege.h 滚动信息处理rollmassege.cpp 滚动信息…...

JavaScript新手学习手册-基础代码(二)

与上篇博客相接 一:函数: 案例:通过函数实现绝对值的输出 方法一: function absoluate(x){if(x>0){return x;}else{ return -x;}} 在控制台调用函数 方法二: var demo1 function(x){if(x>0){return x;}els…...

wireshark 抓包使用记录

文章目录前言wireshark 抓包使用记录一、wireshark的基础使用二、wireshark的常用功能1、开始混杂模式2、过滤器操作2.1、抓包过滤器2.2、显示过滤器3、时间格式显示4、统计流量图5、标记显示6、导出数据包7、增加、隐藏、删除显示列前言 如果您觉得有用的话,记得给…...

pd dataframe 读取处理 有合并单元格的excel方式

from pathlib import Path import openpyxl 拆分所有的合并单元格,并赋予合并之前的值。 由于openpyxl并没有提供拆分并填充的方法,所以使用该方法进行完成 def unmerge_and_fill_cells(worksheet): all_merged_cell_ranges list( worksheet.merged_…...

七,iperf3源代码分析:状态机及状态转换过程--->运行正向TCP单向测试时的服务端代码

本文目录一、测试用命令二、iperf3状态机中各个状态解析三、iperf3状态机迁移分析K-初始化测试对象(NA--->初始化状态):A-服务器端测试对象开始运行(初始化状态--->IPERF_START状态):B-建立控制连接(初始化状态-…...

【网络篇】----- 传输层协议 之 UDP(协议格式,协议特性和编程影响三方面详细分析)

文章目录 前言1、UDP协议2、协议格式 2.1、协议格式模型2.2、字段分析3.协议特性4.编程影响总结前言 1、UDP协议 UDP协议,又名数据报传输协议,是传输层协议之一!!! 在TCP/IP五层模型中,在传输层中&#xff…...

【基于STM32的多功能台灯控制】

基于STM32的多功能台灯控制 在之前一篇博文中已出过智能台灯相关的介绍,在这里对之前的模块以及功能上进行了优化和功能上的改进,需源码或实物可私【创作不易-拒绝白嫖】 功能说明 1、按键模式多功能台灯在设计上使用了4个按键分别做为 按键1模式的切换…...

Mac 编译x264源码No working C compiler found 错误

在mac上编译x264源码时,报错No working C compiler found 。网上找了一圈方案也无法解决 只能硬着头皮看configure这个脚本,通过一步一步抽丝拨茧终于是在mac上可以编译了。 这里只当记录一下,为后续同学遇到同样问题提供一个辅助解决方案。…...

如何有效地降低软件开发风险?

1、科学分析风险 高风险自动预警 一般对风险进行科学分析,主要从3个维度进行划分:影响的严重性、发生的可能性、产生的影响性。 根据风险对项目的影响程度,从3个维度将其划分5个等级:很低、比较低、中等、比较高、很高。这样我们能…...

【python】剑指offer代码大集合2

本文是【python】剑指offer代码大集合的姊妹篇,用于完善标识todo的代码! 刷题网站:https://leetcode.cn/problem-list/xb9nqhhg/ 剑指 Offer 14- I. 剪绳子 https://leetcode.cn/problems/jian-sheng-zi-lcof/ todo 剑指 Offer 14- II. 剪绳子 II https://leetcode.cn/pr…...

经纬恒润再传佳讯,斩获大奖

阳春二月,经纬恒润屡传佳讯,凭借产品、研发等多方面的出色表现,再次斩获东风柳汽“优秀供应商”和广汽传祺“科技创新奖”,以实力印证良好口碑,不忘初心,载誉而行! 东风柳汽:优秀供…...

说说转义字符 “\”

转义字符-escape character character 表示字符,包含两层含义, 1.字母 2.符号 转义: 改变含义 字符: 字母、符号 转义字符: 把 字母、符号 的含义改变了注意:这里有 2 个常常被忽视、忽略、轻视的转义规则&…...

2023高质量设计竞赛汇总,想证明自己实力的快来

对于设计师来说,参加设计比赛不仅能够提升自己的设计能力,也是一条证明实力最好的捷径。小编也收集整理了不少近期设计大赛,分别标注了截止日期和官网等,宝子们记得码住收藏,赶紧SHOW起来!优酷X站酷 一千零…...

MongoDB与MySQL有区别吗?用一个表格跟你说明

MongoDB MySQL 数据库模型 非关系型 关系型 存储方式 虚拟内存持久化 不同引擎有不同存储方式 查询语句 独特MongoDB查询方式 传统SQL语句 架构特点 可通过副本集和分片实现高可用 常见有单点、M-S、MHA、MMM、Cluster等架构方式 数据处理方式 基于内存&#xf…...

ElasticSearch - 分布式文档索引、搜索、更新和删除文档的过程

文章目录1. 分布式文档存储1. 路由一个文档到一个分片中2. 主分片和副本分片如何交互3. 新建、索引和删除文档4. 取回一个文档5. 局部更新文档2. ElasticSearch相关问题1. 路由计算方式?2. 分片控制3. 分布式文档写入(索引)的过程?4. 分布式文档搜索的过…...

Python之re库用法细讲

文章目录前言一、使用 re 模块的前期准备工作二、使用 re 模块匹配字符串1. 使用 match() 方法进行匹配2. 使用 search() 方法进行匹配3. 使用 findall() 方法进行匹配三、使用 re 模块替换字符串四、使用 re 模块分割字符串总结前言 在之前的博客中我们学习了【正则表达式】的…...

MATLAB | 如何绘制github同款日历热力图

应粉丝要求,出一个类似于github热图的日历热力图,大概长这样: 依旧工具函数放在文末,如有bug请反馈并去gitee下载更新版。 使用教程 使用方式有以下几种会慢慢讲到: heatmapDT(Year,T,V)heatmapDT(Year,T,V,MonLim)h…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...