logrotate实现日志文件轮转

文章目录

  • 介绍
  • 安装
  • 配置
    • 默认配置
    • logrotate参数
  • 运行
    • debug模式
    • verbose模式
    • force模式
  • 定时执行
    • cron.daily
    • 自定义crontab
  • 配置示例
    • 按文件大小转储
    • 按日期转储

介绍

logrotate是基于linux系统的日志管理工具,可用于切割、删除、转储日志文件,logrotate是基于crontab运行的,其配置文件为/etc/logrotate.conf,也可以将自定义的配置文件放在/etc/logrotate.d目录下,可覆盖logrotate.conf的配置。

安装

通常Linux默认安装了logrotate,可以通过以下命令检查是否已经安装:

root@server:~# logrotate --version
logrotate 3.19.0Default mail command:       /usr/bin/mailDefault compress command:   /bin/gzipDefault uncompress command: /bin/gunzipDefault compress extension: .gzDefault state file path:    /var/lib/logrotate/statusACL support:                yesSELinux support:            yes

安装后其执行文件为/usr/sbin/logrotate,其并不是系统服务和守护进程。

配置

默认配置

/etc/logrotate.conf为默认的配置文件,其中的配置向对于所有的日志文件都生效,如果要对特定的日志文件进行配置,需要在/etc/logrotate.d/目录下单独添加配置文件。其默认配置如下:

# see "man logrotate" for details# global options do not affect preceding include directives# rotate log files weekly
weekly# use the adm group by default, since this is the owning group
# of /var/log/syslog.
su root adm# keep 4 weeks 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# packages drop log rotation information into this directory
include /etc/logrotate.d# system-specific logs may also be configured here.

logrotate参数

参数说明
daily/weekly/monthly/yearly日志轮换周期,每天、每周、每月、每年
size日志文件达到指定大小时轮换,默认单位bytes,如:size 50M, size 1G。
rotate日志文件的保留个数,默认为0,如:rotate 5。
maxage指定日志文件的最大存在时间。
minsize指定日志文件的最小大小。
maxsize指定日志文件的最大大小。
olddir
noolddir
将转出的日志文件存放到指令目录,如olddir ./xxxx/,默认为当前目录下。
compress
nocompress
压缩旧日志文件。
delaycompress
nodelaycomporess
在下一次轮换时才压缩日志文件。
missingok如果日志文件不存在,则忽略错误。
notifempty如果日志文件为空,则不轮换。
copytruncate使用复制和截断来实现日志文件的轮换。
dateext在轮换后的日志文件名中添加日期扩展,默认为-%Y%m%d,可用dataformat修改。
dateformat自定义日期格式,用于日志文件名的日期扩展,配合dateext使用。
extension指定压缩的日志文件扩展名。
ifempty如果日志文件为空,则仍然进行轮换。
create创建新的日志文件并设置权限、所有者和组,如:create 744 root root。
su指定以特定用户身份执行轮换操作。
sharedscripts在每个日志文件轮换之后执行一次postrotate脚本。
prerotate
endscript
在轮换之前执行特定的命令。
postrotate
endscript
在轮换之后执行特定的命令。
firstaction
endscript
在第一次轮换之前执行特定的命令。
lastaction
endscript
在最后一次轮换之后执行特定的命令。

运行

debug模式

用于测试配置文件的正确性,仅输出debug信息,不执行操作。

logrotate -d <配置文件>

verbose模式

会根据配置执行操作,并打印详细信息。

logrotate -v <配置文件>

force模式

测试时如果日期不达到配置中的轮换时间,执行logrotate命令时也不会进行转储,可以通过-f进行强制执行。

logrotate -f <配置文件>

定时执行

cron.daily

logrotate是基于cron运行的,执行时间通过cron的配置进行设定,其配置文件为/etc/crontab/etc/anacrontab

/etc/cron.daily/目录下包含logrotate脚本,每日执行logrotate命令,如果自行配置了crontab,可能导致转储操作执行两次。

cron.daily的执行时间配置在/etc/crontab中。

25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

以上配置表示cron.daily在每天的6点25分执行。这样日志转储的时间也是6点25分。如果想不按照这个时间进行日志转储,则logrotate配置文件不能放在/etc/logrotate.d/目录下,否则将会执行两次。

自定义crontab

  1. 编辑 crontab 文件:
crontab -e
  1. 添加定时配置:
* * * * * logrotate /root/logrotate/test

该配置将每分钟执行一次转储操作。

配置示例

按文件大小转储

/var/log/test/*.log {size 30rotate 5copytruncatemissingokcompressdelaycompresscreate 0640 root root
}

对于原始的test.log文件,将被转储为文件名为test.log-20231223的文件,且已转储的文件将被压缩成test.log-20231222.gz文件。

按日期转储

/var/log/test/*.log {dailyrotate 5copytruncatedateextmissingokcompressdelaycompresscreate 0640 root root
}

按每日对日志文件进行转储时,logrotate配置文件可以放在/etc/logrotate.d/目录下,通过默认配置的cron.daily进行定时触发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/578365.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fpga 8段4位数码管verilator模拟

8段4位数码管verilator模拟 seg.v module seg(input wire clk,input wire rst_n,output wire[7:0] SEG,output wire[3:0] SEL );reg[7:0] digit[0:15] {8h3f, 8h06, 8h5b, 8h4f, 8h66, 8h6d, 8h7d,8h07,8h7f,8h6f, 8h77, 8h7c, 8h39, 8h5e, 8h79, 8h71};reg[31:0] cnt 32…

Opencv_CUDA实现推理图像前处理与后处理

Opencv_CUDA实现推理图像前处理与后处理 通过trt 或者 openvino部署深度学习算法时&#xff0c;往往会通过opencv的Mat及算法将图像转换为固定的格式作为输入openvino图像的前后处理后边将在单独的文章中写出今晚空闲搜了一些opencv_cuda的使用方法&#xff0c;在此总结一下前…

云服务器ECS运维管理

目录 实时掌握CPU、内存使用情况 实时掌握存储的使用情况 定期对云服务器数据做好备份 定期检查云服务器的安全运行情况 要想保证云服务器长期稳定的使用&#xff0c;除了依靠阿里云&#xff08;云服务提供商&#xff09;的技术支持&#xff0c;自身必要的安全维护手段也是…

W6100-EVB-Pico评估版介绍

文章目录 1 简介2 硬件资源2.1 硬件规格2.2 引脚定义2.3 工作条件 3 参考资料3.1 Datasheet3.2 原理图3.3 尺寸图&#xff08;尺寸&#xff1a;mm&#xff09;3.4 参考例程 4 硬件协议栈优势 1 简介 W6100-EVB-Pico是一款基于树莓派RP2040和全硬件TCP/IP协议栈以太网芯片W6100的…

ApiPost测试token验证端口(若依)

首先ApiPost自带默认环境与Mock环境。 接下来自己创建新环境设置变量。 注&#xff1a;若本地环境与生产环境端口不一致&#xff0c;这里的url也要带上端口号 创建一个本地环境&#xff0c;增加环境变量url&#xff0c;默认值为localhost。 再新建一个生产环境。 新建一个登…

Hadoop集群部署

目录 1 模板虚拟机环境准备 1.1 修改网卡配置文件 扩展 1.2 修改主机名 1.3 在虚拟机中需要的基础文件包 1.4 关闭防火墙 1.5 创建Hadoop的账户及文件 2 模板虚拟机安装JDK 3 模板虚拟机安装Hadoop 4 克隆虚拟机 5 虚拟机配置主机名称映射 6 集群分发脚本 7 SSH无…

HTML代码全解析

HTML代码全解析实例解析 <!DOCTYPE html> 声明为 HTML5 文档<html> 元素是 HTML 页面的根元素<head> 元素包含了文档的元&#xff08;meta&#xff09;数据&#xff0c;如 <meta charset"utf-8"> 定义网页编码格式为 utf-8。<title> 元…

1233. 全球变暖(bfs宽搜相邻点)

题目&#xff1a; 1233. 全球变暖 - AcWing题库 思路&#xff1a;bfs 1.临接问题&#xff0c;最短路径问题--->bfs。 2.被完全淹没--->岛屿所以部分均临海。 代码&#xff1a; #include<bits/stdc.h> using namespace std; const int N1010; struct Point …

【Linux系统编程】进程状态

介绍 进程的状态指的是进程在执行过程中所处的状态。进程的状态随着进程的执行和外界条件的变化而转换。我们可用 kill 命令来进程控制进程的状态。 kill中的 kill -l 指令用于查看系统中定义的所有信号及其对应的编号。这些信号可以用于 kill 命令来向进程发送特定的信号控制其…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Toast组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Toast组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Toast组件 Toast 的应用场景也非常广泛&#xff0c;比如网络请求出错了可以弹一个…

探索 Vue3 (五) 骨架屏

骨架屏是页面的一个空白版本&#xff0c;通常会在页面完全渲染之前&#xff0c;通过一些灰色的区块大致勾勒出轮廓&#xff0c;待数据加载完成后&#xff0c;再替换成真实的内容。 目前主流 UI库 都有骨架屏&#xff0c;如 Element-UI、Antd 可以看到使用起来非常简单&#x…

鸿蒙开发(二)- 鸿蒙DevEco开发环境搭建

上篇说到&#xff0c;鸿蒙开发目前势头旺盛&#xff0c;头部大厂正在如火如荼地进行着&#xff0c;华为也对外宣称已经跟多个厂商达成合作。目前看来&#xff0c;对于前端或客户端开发人员来说&#xff0c;掌握下鸿蒙开发还是有些必要性的。如果你之前是从事Android开发的&…

【Qt-QFile-QDir】

Qt编程指南 ■ Stream■ QTextStream■ QDataStream ■ QDial■ QDir■ QFile■■ ■ Stream ■ QTextStream /* 获取文件的路径 */ QString fileName QFileDialog::getOpenFileName(this);/* 指向文件 */ file.setFileName(fileName);/* 判断文件是否存在 */ if (!file.exi…

论文阅读<CF-YOLO: Cross Fusion YOLO for Object Detection in Adverse Weather.....>

论文链接&#xff1a;https://arxiv.org/pdf/2309.08152.pdfhttps://arxiv.org/pdf/2206.01381.pdfhttps://arxiv.org/pdf/2309.08152.pdf 代码链接&#xff1a;https://github.com/DiffPrompter/diff-prompter 目前没有完整代码放出。 恶劣天气下的目标检测主要有以下三种解…

Stable Diffusion系列(三):网络分类与选择

文章目录 网络分类模型基座模型衍生模型二次元模型2.5D模型写实风格模型 名称解读 VAELora嵌入文件放置界面使用 网络分类 当使用SD webui绘图时&#xff0c;为了提升绘图质量&#xff0c;可以多种网络混合使用&#xff0c;可选的网络包括了模型、VAE、超网络、Lora和嵌入。 …

引用jquery.js的html5基础页面模板

本专栏是汇集了一些HTML常常被遗忘的知识&#xff0c;这里算是温故而知新&#xff0c;往往这些零碎的知识点&#xff0c;在你开发中能起到炸惊效果。我们每个人都没有过目不忘&#xff0c;过久不忘的本事&#xff0c;就让这一点点知识慢慢渗透你的脑海。 本专栏的风格是力求简洁…

使用LLaMA-Factory微调ChatGLM3

1、创建虚拟环境 略 2、部署LLaMA-Factory &#xff08;1&#xff09;下载LLaMA-Factory https://github.com/hiyouga/LLaMA-Factory &#xff08;2&#xff09;安装依赖 pip3 install -r requirements.txt&#xff08;3&#xff09;启动LLaMA-Factory的web页面 CUDA_VI…

Java经典框架之Spring MVC

Spring MVC Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机&#xff0c;Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. Spring MVC 入门案例 2. 基…

Redis小记(1)

目录 1.Redis和Mysql的区别 2.Redis常用命令 1.Redis和Mysql的区别 a:mysql和redis的存储方式不同 mysql是关系型数据库&#xff0c;用表来进行存储数据。 redis是通过键值对来存储数据&#xff0c;key使用string来标识&#xff0c;value可以是各种不同的数据结构。 b:mys…

JVS低代码平台:多级菜单配置的详细教程与演示

多级菜单是软件系统一种常见的用户界面设计&#xff0c;它允许用户通过点击或选择不同的菜单项来执行不同的操作或访问不同的功能。多级菜单通常由多个级别的菜单组成&#xff0c;每个级别都包含一组可选择的菜单项。用户可以通过点击或选择菜单项来进入下一级菜单&#xff0c;…