Linux logrotate 使用详解

Linux指令篇:logrotate 通过合理配置。 阅读详情
Linux logrotate
Logrotate 简介
  • logrotate 程序是一个日志文件管理工具。用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到“转储”作用。可以节省磁盘空间。 使用logrotate指令,可以轻松管理系统所产生的记录文件。每个记录文件都可被设置成每日,每周或每月处理,也能在文件太大时立即处理。

  • Linux系统默认安装logrotate工具,它默认的配置文件在:

    /etc/logrotate.conf  
    /etc/logrotate.d/  # logrotate.d 目录里的 所有文件都会被主动的读入/etc/logrotate.conf中执行
    
  • Logrotate是基于CRON来运行的,其脚本是/etc/cron.daily/logrotate,日志轮转是系统自动完成的。实际运行时,Logrotate会调用配置文件/etc/logrotate.conf。可以在/etc/logrotate.d目录里放置自定义好的配置文件,用来覆盖Logrotate的缺省值

Logrotate 使用方式
  • 语法:

    logrotate(选项)(参数)
    
  • 选项:

    -?或--help:在线帮助;
    -d或--debug:详细显示指令执行过程,便于排错或了解程序执行的情况;
    -f或--force :强行启动记录文件维护操作,纵使logrotate指令认为没有需要亦然;
    -s<状态文件>或--state=<状态文件>:使用指定的状态文件;
    -v或--version:显示指令执行过程;
    -usage:显示指令基本用法。
    
  • 参数:

    配置文件:指定lograote指令的配置文件

  • 配置参数

    compress                 通过gzip 压缩转储以后的日志
    nocompress               不做gzip压缩处理
    copytruncate             用于还在打开中的日志文件,把当前日志备份并截断;是先拷贝再清空的方式,拷贝和清空之间有一个时间差,可能会丢失部分日志数据。
    nocopytruncate 备份日志文件不过不截断
    create mode owner group  轮转时指定创建新文件的属性,如create 0777 nobody nobody
    nocreate                 不建立新的日志文件
    delaycompress            和compress 一起使用时,转储的日志文件到下一次转储时才压缩
    nodelaycompress          覆盖 delaycompress 选项,转储同时压缩
    missingok                如果日志丢失,不报错继续滚动下一个日志
    errors address           专储时的错误信息发送到指定的Email 地址
    ifempty                  即使日志文件为空文件也做轮转,这个是logrotate的缺省选项。
    notifempty               当日志文件为空时,不进行轮转
    mail address             把转储的日志文件发送到指定的E-mail 地址
    nomail                   转储时不发送日志文件
    olddir directory         转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
    noolddir                 转储后的日志文件和当前日志文件放在同一个目录下
    sharedscripts            运行postrotate脚本,作用是在所有日志都轮转后统一执行一次脚本。如果没有配置这个,那么每个日志轮转后都会执行一次脚本
    prerotate                在logrotate转储之前需要执行的指令,例如修改文件的属性等动作;必须独立成行
    postrotate               在logrotate转储之后需要执行的指令,例如重新启动 (kill -HUP) 某个服务!必须独立成行
    daily                    指定转储周期为每天
    weekly                   指定转储周期为每周
    monthly                  指定转储周期为每月
    rotate count             指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
    dateext                  使用当期日期作为命名格式
    dateformat .%s           配合dateext使用,紧跟在下一行出现,定义文件切割后的文件名,必须配合dateext使用,只支持 %Y %m %d %s 这四个参数
    size(或minsize) log-size 当日志文件到达指定的大小时才转储
    

只有当 logrotate指令执行的时候,日志文件才会根据条件判断是否需要 rotate, 否则日志文件是不会自行滚动的

hourly maxsize minisize size 参数详解
  • hourly: 滚动周期一小时, 即 一个小时内只对日志文件进行一次滚动操作,不管日志文件的大小如何,不管 logrotate指令执行多少次

  • maxsize:如果想在设定的滚动周期内发生多次滚动,需要 maxsize 和 logrotate 同时使用。在一个滚动周期内,当logrotate指令执行时,每满足日志文件大小超过 maxsize, 就会发生一次滚动

  • minisize:在执行 logrotate指令时,满足日志文件超过 minisize 时才会发生滚动,但在一个滚动周期内仅发生一次滚动。

  • size:size 和滚动周期参数互斥(使用size时一般不使用滚动周期),执行 logrotate 指令时,满足日志文件超过 size就会滚动

logrotate 如何被执行 (logrotate 和 crontab anacrontab 之间的关系)
  • 执行流程
    1. crond服务扫描/etc/cron.d,加载 /etc/cron.d/0hourly,在每小时的01分执行 /etc/cron.hourly 文件夹下的脚本
    2. 执行/etc/cron.hourly/0anacron;根据/etc/anacrontab的配置执行/etc/cron.daily/weekly/monthly
    3. 执行/etc/cron.daily/下的logrotate脚本;执行logrotate ;根据/etc/logrotate.conf配置执行/etc/logrotate.d/下的日志文件脚本
  1. /etc/cron.d/0hourly
[root@test ~]# cat /etc/cron.d/0hourly   #这个文件指定每小时的01分执行/etc/cron.hourly内的所有脚本
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
01 * * * * root run-parts /etc/cron.hourly   #这里的root指定执行任务的用户,run-parts其实是一个可执行脚本,在/usr/bin/run-parts,用来执行cron.hourly目录内的所有脚本
  1. /etc/cron.hourly/0anacron #cron.hourly目录下的脚本,根据条件执行anacron命令 , 如果执行anacron命令则会查看 anacron 的配置文件 /etc/anacrontab, 该配置文件中的内容如下:
[root@localhost ~]# cat /etc/anacrontab    
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45     #最大延迟时间
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22     #只有在3-22点之间执行任务

#period in days   delay in minutes   job-identifier   command
1    5    cron.daily        nice run-parts /etc/cron.daily
7    25    cron.weekly        nice run-parts /etc/cron.weekly
@monthly 45    cron.monthly        nice run-parts 

每天都执行/etc/cront.daily/目录下的脚本文件,真实的延迟是RANDOM_DELAY+delay。这里的延迟是5分钟,加上上面的RANDOM_DELAY,所以实际的延迟时间是5-50之间,开始时间为03-22点,如果机器没关,那么一般就是在03:05-03:50之间执行。 nice命令将该进程设置为nice=10,默认为0,即低优先级进程。如果RANDOM_DELAY=0,那么表示准确延迟5min,即03:05执行cron.daily内的脚本。

  1. /etc/cron.daily/logrotate脚本执行 logrotate.conf

    [root@localhost ~]# 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 $EXITVALUE
    

ref:https://blog.youkuaiyun.com/damiaomiao666/article/details/72597731hz

linux logrotate 配置说明 文章目录logrotate参数配置logrotate配置方式dateformat 配置示例示列1示列2运行logrotatecrontab 定时debug 模式:verbose 模式 logrotate参数 参数 说明 dailyweeklymonthlyyearly 切割周期,多久切割一次。daily : 切割周期为 每天weekly : 切割周期为 每周monthly : 切割周期为 每月yearly: 切割周期为 每年 size size 阅读详情

相关推荐

logrotate 使用说明

介绍使用logrotate来管理服务日志。

heyongshen的博客 1964

Linux命令之logrotate命令

logrotate旨在简化生成大量日志文件的系统的管理。它允许自动旋转、压缩、删除和邮寄日志文件。每个日志文件可以每天、每周、每月处理,也可以在其增长过大时处理。 通常,logrotate作为日常cron作业运行。除非日志的标准是:根据日志的大小,logrotate每天运行一次以上,或者除非使用-f或--force选项。 可以在命令行上给出任意数量的配置文件。稍后的配置文件可能会覆盖先前文件中给出的选项,因此logrotate配置文件的列出顺序很重要。

月生的静心苑 4594

【Linux】linux系统自带的日志切割工具logrotate详解

切割周期切割周期,多久切割一次。daily : 切割周期为 每天weekly : 切割周期为 每周monthly : 切割周期为 每月yearly: 切割周期为 每年切割大小当日志文件到达指定的大小时才转储。默认单位是 bytes。bytes (缺省) 及 KB (sizek) 或 MB (sizem)如: size 30k、 size 50M日志文件保留个数日志文件保留备份的个数。默认是 0。如:0 指没有备份;5 指保留最近的5个备份,其余的全部删除。

wewewecmcm的博客 1704

Linux命令:日志管理工具logrotate详解

可以通过手动运行logrotate命令来立即执行日志切割。按照一定的规则对日志文件进行轮转操作,例如按天、周、月等时间周期,或者当日志文件达到一定大小的时候,将当前正在使用的日志文件重命名,并创建一个新的空日志文件继续记录日志,以防止日志文件过大占用过多磁盘空间。logrotate是Linux系统下一个非常实用的日志管理工具,它主要用于切割日志文件、删除旧的日志文件,并创建新的日志文件,以节省磁盘空间。在对日志进行轮转时,可以对旧的日志文件进行压缩,减少存储空间占用,同时也便于日志的长期保存和管理。

weixin_70208651的博客 4771

Linux系统 logrotate 详解

对于 Linux 系统安全来说,日志文件是极其重要的工具。不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分 Nginx日志之类的 CRON 脚本,大家似乎遗忘了 Logrotate,争相发明自己的轮子,这真是让人沮丧啊!就好比明明身边躺着现成的性感美女,大家却忙着自娱自乐,罪过! logrotate 程序是一个日志文件管理工具。用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到“转储”作用。可以节省磁盘空间。下面就对 logrotate 日志轮转操作做一梳理记录。 1、配置文件介绍

coderOnline的博客 681

linux logrotate配置文件详解

linux logrotate配置文件详解

z19861216的博客 4744

Linux系统之logrotate 命令详解

logrotate 是一款用于自动轮转、压缩、删除和邮件发送系统日志文件的工具,专为管理产生大量日志的系统设计。它支持按时间(日、周、月)或大小触发日志轮转,可配置轮转后执行自定义脚本(如重启服务刷新日志),有效防止日志文件过大占用磁盘空间,是系统日志管理的核心工具。

weixin_56303229的博客 1655

linux logrotate介绍

linux logrotate介绍

z19861216的博客 1534

Linux下logrotate日志文件管理详解

logrotate是一个Linux系统默认安装了的日志文件管理工具,用来把旧文件轮转、压缩、删除,并且创建新的日志文件。我们可以根据日志文件的大小、天数等来转储,便于对日志文件管理。logrotate是基于crond服务来运行的,crond服务的脚本是/etc/cron.daily/logrotate,日志转储是系统自动完成的。

weixin_40332490的博客 1326

AniME框架深度体验:用AI自动生成《修真小说》动画全流程记录

本文详细记录了使用开源多智能体框架AniME,结合其核心动画生成模型AniSora V3,将一段修真小说文本自动转化为风格统一动画视频的全流程实战。文章深入解析了从环境搭建、导演智能体任务分解,到多智能体协作生成分镜、角色、动画及最终合成的每一步操作与挑战,为AI驱动的长视频创作提供了宝贵的实践经验与流程优化思路。

ol789012345的博客 625

RseQC实战指南:从安装到RNA-Seq数据质控全流程解析

本文提供了一份详尽的RseQC实战指南,涵盖从安装配置到RNA-Seq数据质控的全流程。文章重点解析了RseQC作为专业质控工具的核心价值,手把手指导如何通过Conda或pip完成安装,并深入讲解了bam_stat.py、geneBody_coverage.py等关键模块的使用方法与结果解读技巧,帮助用户有效评估RNA完整性、文库构建质量及链特异性,确保下游分析的可靠性。

weixin_29200741的博客 201

Linux自带神器logrotate详解

logrotate.conf 才主要的配置文件,logrotate.d 是一个目录,该目录里的所有文件都会被主动的读入/etc/logrotate.conf中执行。另外,如果 /etc/logrotate.d/ 里面的文件中没有设定一些细节,则会以/etc/logrotate.conf这个文件的设定来作为默认值。Logrotate是基于CRON来运行的,其脚本是/etc/cron.daily/logrotate,日志轮转是系统自动完成的。

u010947949的专栏 2444

【个人记录】CentOS7升级glibc至2.28

由于CentOS7系统已经停止支持, 虽然大部分业务已经迁移至OpenEuler,但仍然有部分业务系统跑在CentOS7上。在尝试部署新业务环境时经常会提示如下错误(以code-server运行需要的node 20为例)node -v为了保障业务可正常运行,通常采用Docker继承好的node环境进行部署,但部分场景还是需要宿主机使用新版glibc版本。本文记录本人一次成功升级glibc(2.17=>2.28)的步骤。

喵呜 3883

linux logrotate 服务,Linux下logrotate服务

一.配置文件Linux系统默认安装logrotate工具,它默认的配置文件在:/etc/logrotate.conf/etc/logrotate.d/(1)logrotate.conf 是主要的配置文件,logrotate.d 是一个目录,该目录里的所有文件都会被主动的读入/etc/logrotate.conf中执行。主配置文件:[root@node1~]#cat/etc/logrotate...

weixin_42566451的博客 682

基于 Python 的 LIF 模型:探索神经元同步与小世界网络

首先,我们定义了一个LIFNeuronself.soma.L = self.soma.diam = 12.6157 # 固定神经元形状self.cm = cm # 电容self.V_rest = V_rest # 静息电位self.V = V_rest # 初始化膜电位在初始化过程中,每个神经元被赋予初始的静息电位,并且其膜电位会在后续的模拟过程中动态变化。

qq_36224726的博客 1423

glm-4v-9b环境配置全攻略:从CUDA版本冲突到bitsandbytes异常排查(RTX A4000实测)

本文详细介绍了在RTX A4000显卡上配置GLM-4V-9B多模态大模型的完整流程,重点解决CUDA版本冲突和bitsandbytes异常问题。通过4-bit量化技术显著降低显存占用,提供从环境预检到量化部署的实战指南,帮助开发者在有限显存环境下高效运行大模型。

weixin_30369041的博客 405

logrotate测试_Linux自带神器logrotate详解

周一上班,就被开发组那哥们儿拉进电话会议,说他们的服务又挂了,估计磁盘又爆掉了。登录到web服务上,上来 df -h 一把,果然,挂的一个共享又被撑爆。root@websrv001~#df-hFilesystemSizeUsedAvailUse%Mountedon/dev/mapper/rootvg-rootvol12G5.6G5.6G50%...

weixin_39962889的博客 546

【Bug已解决】Codex Desktop 报错 Computer Use 插件不可用的解决方案

方案适用场景推荐指数让 Codex 自查修复首选的快速尝试方式⭐⭐⭐⭐⭐清理插件缓存重启明确怀疑是本地缓存损坏⭐⭐⭐⭐彻底卸载重装前两个方案无效时的进阶方案⭐⭐⭐⭐检查安全软件拦截企业电脑/装有严格安全软件的环境⭐⭐⭐确认账号权限范围排除功能本身未开放的可能性⭐⭐⭐Codex Desktop 报Computer Use 插件不可用的本质是客户端内置的插件资源在本地未被正确解包或注册到插件市场索引中,而不是真的缺少安装包。优先尝试让 Codex 自身检测并修复本地插件环境。

一键难忘的博客 5981

Linux学习-68-日志转储logrotate命令(logrotate配置文件)

Linux学习-68-日志转储logrotate命令(logrotate配置文件分析)

时光 1276

【Tiny_CD】Tiny_CD变化检测网络详解(含python代码)

tiny-cd网络详解,含论文下载、代码下载地址。

向上生长的程序媛的博客 2161

【系列06】端侧AI:构建与部署高效的本地化AI模型 第5章:模型剪枝(Pruning)

结构化剪枝移除的是模型中的整个结构,比如一个完整的神经元、一个卷积核或一个通道。修剪后的模型权重矩阵仍然是稠密的,因此能够充分利用现代硬件和软件的并行计算优势,从而显著提升推理速度。非结构化剪枝是最细粒度的剪枝方法。对于需要极致压缩但对推理速度要求不高的场景,非结构化剪枝是好的选择。它就像修剪一棵树,通过移除模型中不必要的“枝叶”,让模型变得更精简、更高效,从而适应资源受限的设备。,开发者可以方便地对模型的不同层进行剪枝,并根据需求进行微调,从而在不影响太多性能的前提下,获得一个更轻量、更高效的模型。

学习,输出==》再学习再输出 649

linux 27、 logrotate原理与使用

1 logrotate 基础 logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。 logrotate 程序还可以用于压缩日志文件,以及发送日志到指定的E-mail 。 参考: https://blog.youkuaiyun.com/cjwid/ar...

qingyuanluofeng的专栏 1667

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

logrotate测试_利用Linux自带的logrotate管理日志

日常运维中,经常要对各类日志进行管理,清理,监控,尤其是因为应用bug,在1小时内就能写几十个G日志,导致磁盘爆满,系统挂掉。nohup.out,access.log,catalina.out本文简单介绍利用Linux自带的logrotate来对操作系统中各类日志进行管理。1、logrotate简介The logrotate utility is designed to simplify the ...

weixin_39770226的博客 294

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

linux下logrotate 配置和理解

 对于Linux 的系统安全来说,日志文件是极其重要的工具。系统管理员可以使用logrotate 程序用来管理系统中的最新的事件,对于Linux 的系统安全来说,日志文件是极其重要的工具。系统管理员可以使用logrotate 程序用来管理系统中的最新的事件。logrotate 还可以用来备份日志文件,本篇将通过以下几部分来介绍 日志文件的管理:1、logrotate 配置2、缺省配置 lo

cjwid的专栏 12万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

linux /etc/logrotate.conf,linux下logrotate 配置和理解(示例代码)

对于Linux 的系统安全来说,日志文件是极其重要的工具。系统管理员可以使用logrotate 程序用来管理系统中的最新的事件,对于Linux 的系统安全来说,日志文件是极其重要的工具。系统管理员可以使用logrotate 程序用来管理系统中的最新的事件。logrotate 还可以用来备份日志文件,本篇将通过以下几部分来介绍日志文件的管理:1、logrotate 配置2、缺省配置 logrotat...

weixin_29876341的博客 6175

linux logrotate 指定目录,使用logrotate 管理Linux日誌檔

使用logrotate管理Linux日誌檔编辑整理:王琦2005/08/15对于Linux的系统安全来说,日志文件是极其重要的工具。系统管理员可以使用logrotate程序用来管理系统中的最新的事件,logrotate还可以用来备份日志文件。那么日志文件是如何管理及如何实现轮换的呢?Linux的系统日志一般被记录在/var/log/目录下。日志纪录配置文档为/etc/syslog.conf./va...

weixin_42394656的博客 650
上一篇: Linux 中 python 使用 pip 安装指定的包
下一篇: vmware 虚拟机创建 LVM
懿朔
博客等级 码龄7年 17粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值