logrotate command in Linux

背景

在生产过程中,由于磁盘空间、保留周期等因素,会对系统、应用等日志提出要求,要求系统日志定期进行轮转、压缩和删除,从而减少开销,而系统自带的 logrotate 则是一个简单又实用的小工具,下面着重介绍一下,满足日常需求。

语法

Usage: logrotate [OPTION...] <configfile></configfile>

常用参数 :

-f非设定周期内强制运行

-d调试,对日志模拟进行操作

-v可视化执行过程结果

其它参数不常用,详情见下:

[root@test01 ~]# logrotate --help
Usage: logrotate [OPTION...] <configfile>
  -d, --debug               Don't do anything, just test (implies -v)
  -f, --force               Force file rotation
  -m, --mail=command        Command to send mail (instead of `/bin/mail')
  -s, --state=statefile     Path of state file
  -v, --verbose             Display messages during rotation
  -l, --log=STRING          Log file
  --version                 Display version information

Help options:
  -?, --help                Show this help message
  --usage                   Display brief usage message
[root@test01 ~]#</configfile>

配置文件

logrotate 配置主要有两个

  • 常规主配置文件地址 /etc/logrotate.conf 不建议对其修改
  • 自定义配置文件 /etc/logrotate.d 这里存放用户自定义文件,通常建议将个人文件放到这里
[root@test01 ~]# cd /etc/logrotate.d/
[root@test01 logrotate.d]# ll
total 16
-rw-r--r--. 1 root root  91 Aug  6  2019 bootlog
-rw-r--r--. 1 root root 224 Aug  6  2019 syslog
-rw-r--r--. 1 root root 100 Oct 31  2018 wpa_supplicant
-rw-r--r--. 1 root root 103 Aug  8  2019 yum
[root@test01 logrotate.d]#

为保证 /etc/logrotate.d 定义的文件能够执行生效,需要确保 /etc/logrotate.conf 这句话没有注释,如有注释,需手动取消:

RPM packages drop log rotation information into this directory
include /etc/logrotate.d

配置文件demo及参数

以下是我个人一个配置文件,可以直接拿来结合自己需求进行修改:

/var/log/linuxserver/linux.log {
        rotate 7
        size 200M
        daily
        compress
        delaycompress
        missingok
        notifempty
        noolddir
        copytruncate
        dateext
        dateformat .%s
        create 660 root root
}

文件格式主要是以日志路径和日志切割参数组成:

第一行:指明 需要进行切割的日志路径,可以结合正则表达式,例如 /path/*.log ,指定路径下所有的日志

第二行:以 { } 包含 logrotate所需要的参数,demo包含了基本常用到的几个参数,此外还有如下部分参数,参数含义如下:

&#x65E5;&#x5FD7;&#x538B;&#x7F29;&#x53C2;&#x6570;
compress                 &#x901A;&#x8FC7;gzip &#x538B;&#x7F29;&#x8F6C;&#x50A8;&#x4EE5;&#x540E;&#x7684;&#x65E5;&#x5FD7;
delaycompress            &#x548C;compress &#x4E00;&#x8D77;&#x4F7F;&#x7528;&#x65F6;&#xFF0C;&#x8F6C;&#x50A8;&#x7684;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;&#x5230;&#x4E0B;&#x4E00;&#x6B21;&#x8F6C;&#x50A8;&#x65F6;&#x624D;&#x538B;&#x7F29;
nodelaycompress          &#x8986;&#x76D6; delaycompress &#x9009;&#x9879;&#xFF0C;&#x8F6C;&#x50A8;&#x540C;&#x65F6;&#x538B;&#x7F29;
nocompress               &#x4E0D;&#x505A;gzip&#x538B;&#x7F29;&#x5904;&#x7406;
&#x5BF9;&#x622A;&#x65AD;&#x540E;&#x7684;&#x65E5;&#x5FD7;&#x5904;&#x7406;&#x53C2;&#x6570;
copytruncate             &#x7528;&#x4E8E;&#x8FD8;&#x5728;&#x6253;&#x5F00;&#x4E2D;&#x7684;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;&#xFF0C;&#x628A;&#x5F53;&#x524D;&#x65E5;&#x5FD7;&#x5907;&#x4EFD;&#x5E76;&#x622A;&#x65AD;&#xFF1B;&#x662F;&#x5148;&#x62F7;&#x8D1D;&#x518D;&#x6E05;&#x7A7A;&#x7684;&#x65B9;&#x5F0F;&#xFF0C;&#x62F7;&#x8D1D;&#x548C;&#x6E05;&#x7A7A;&#x4E4B;&#x95F4;&#x6709;&#x4E00;&#x4E2A;&#x65F6;&#x95F4;&#x5DEE;&#xFF0C;&#x53EF;&#x80FD;&#x4F1A;&#x4E22;&#x5931;&#x90E8;&#x5206;&#x65E5;&#x5FD7;&#x6570;&#x636E;&#x3002;
nocopytruncate           &#x5907;&#x4EFD;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;&#x4E0D;&#x8FC7;&#x4E0D;&#x622A;&#x65AD;
create mode owner group  &#x8F6E;&#x8F6C;&#x65F6;&#x6307;&#x5B9A;&#x521B;&#x5EFA;&#x65B0;&#x6587;&#x4EF6;&#x7684;&#x5C5E;&#x6027;&#xFF0C;&#x5982;create 0777 nobody nobody
nocreate                 &#x4E0D;&#x5EFA;&#x7ACB;&#x65B0;&#x7684;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;
dateext                  &#x4F7F;&#x7528;&#x5F53;&#x671F;&#x65E5;&#x671F;&#x4F5C;&#x4E3A;&#x547D;&#x540D;&#x683C;&#x5F0F;
dateformat .%s           &#x914D;&#x5408;dateext&#x4F7F;&#x7528;&#xFF0C;&#x7D27;&#x8DDF;&#x5728;&#x4E0B;&#x4E00;&#x884C;&#x51FA;&#x73B0;&#xFF0C;&#x5B9A;&#x4E49;&#x6587;&#x4EF6;&#x5207;&#x5272;&#x540E;&#x7684;&#x6587;&#x4EF6;&#x540D;&#xFF0C;&#x5FC5;&#x987B;&#x914D;&#x5408;dateext&#x4F7F;&#x7528;&#xFF0C;&#x53EA;&#x652F;&#x6301; %Y %m %d %s &#x8FD9;&#x56DB;&#x4E2A;&#x53C2;&#x6570;
&#x57FA;&#x672C;&#x53C2;&#x6570;
missingok                &#x5982;&#x679C;&#x65E5;&#x5FD7;&#x4E22;&#x5931;&#xFF0C;&#x4E0D;&#x62A5;&#x9519;&#x7EE7;&#x7EED;&#x6EDA;&#x52A8;&#x4E0B;&#x4E00;&#x4E2A;&#x65E5;&#x5FD7;
errors address           &#x4E13;&#x50A8;&#x65F6;&#x7684;&#x9519;&#x8BEF;&#x4FE1;&#x606F;&#x53D1;&#x9001;&#x5230;&#x6307;&#x5B9A;&#x7684;Email &#x5730;&#x5740;
ifempty                  &#x5373;&#x4F7F;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;&#x4E3A;&#x7A7A;&#x6587;&#x4EF6;&#x4E5F;&#x505A;&#x8F6E;&#x8F6C;&#xFF0C;&#x8FD9;&#x4E2A;&#x662F;logrotate&#x7684;&#x7F3A;&#x7701;&#x9009;&#x9879;&#x3002;
notifempty               &#x5F53;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;&#x4E3A;&#x7A7A;&#x65F6;&#xFF0C;&#x4E0D;&#x8FDB;&#x884C;&#x8F6E;&#x8F6C;
mail address             &#x628A;&#x8F6C;&#x50A8;&#x7684;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;&#x53D1;&#x9001;&#x5230;&#x6307;&#x5B9A;&#x7684;E-mail &#x5730;&#x5740;
nomail                   &#x8F6C;&#x50A8;&#x65F6;&#x4E0D;&#x53D1;&#x9001;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;
&#x65E7;&#x65E5;&#x5FD7;&#x5B58;&#x653E;&#x53C2;&#x6570;
olddir directory         &#x8F6C;&#x50A8;&#x540E;&#x7684;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;&#x653E;&#x5165;&#x6307;&#x5B9A;&#x7684;&#x76EE;&#x5F55;&#xFF0C;&#x5FC5;&#x987B;&#x548C;&#x5F53;&#x524D;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;&#x5728;&#x540C;&#x4E00;&#x4E2A;&#x6587;&#x4EF6;&#x7CFB;&#x7EDF;
noolddir                 &#x8F6C;&#x50A8;&#x540E;&#x7684;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;&#x548C;&#x5F53;&#x524D;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;&#x653E;&#x5728;&#x540C;&#x4E00;&#x4E2A;&#x76EE;&#x5F55;&#x4E0B;
logrotate &#x6267;&#x884C;&#x524D;&#x540E;&#x94A9;&#x5B50;&#x53C2;&#x6570;
sharedscripts            &#x8FD0;&#x884C;postrotate&#x811A;&#x672C;&#xFF0C;&#x4F5C;&#x7528;&#x662F;&#x5728;&#x6240;&#x6709;&#x65E5;&#x5FD7;&#x90FD;&#x8F6E;&#x8F6C;&#x540E;&#x7EDF;&#x4E00;&#x6267;&#x884C;&#x4E00;&#x6B21;&#x811A;&#x672C;&#x3002;&#x5982;&#x679C;&#x6CA1;&#x6709;&#x914D;&#x7F6E;&#x8FD9;&#x4E2A;&#xFF0C;&#x90A3;&#x4E48;&#x6BCF;&#x4E2A;&#x65E5;&#x5FD7;&#x8F6E;&#x8F6C;&#x540E;&#x90FD;&#x4F1A;&#x6267;&#x884C;&#x4E00;&#x6B21;&#x811A;&#x672C;
prerotate                &#x5728;logrotate&#x8F6C;&#x50A8;&#x4E4B;&#x524D;&#x9700;&#x8981;&#x6267;&#x884C;&#x7684;&#x6307;&#x4EE4;&#xFF0C;&#x4F8B;&#x5982;&#x4FEE;&#x6539;&#x6587;&#x4EF6;&#x7684;&#x5C5E;&#x6027;&#x7B49;&#x52A8;&#x4F5C;&#xFF1B;&#x5FC5;&#x987B;&#x72EC;&#x7ACB;&#x6210;&#x884C;
postrotate               &#x5728;logrotate&#x8F6C;&#x50A8;&#x4E4B;&#x540E;&#x9700;&#x8981;&#x6267;&#x884C;&#x7684;&#x6307;&#x4EE4;&#xFF0C;&#x4F8B;&#x5982;&#x91CD;&#x65B0;&#x542F;&#x52A8; (kill -HUP) &#x67D0;&#x4E2A;&#x670D;&#x52A1;&#xFF01;&#x5FC5;&#x987B;&#x72EC;&#x7ACB;&#x6210;&#x884C;
&#x6267;&#x884C;&#x5468;&#x671F;&#x53C2;&#x6570;
daily                    &#x6307;&#x5B9A;&#x8F6C;&#x50A8;&#x5468;&#x671F;&#x4E3A;&#x6BCF;&#x5929;
weekly                   &#x6307;&#x5B9A;&#x8F6C;&#x50A8;&#x5468;&#x671F;&#x4E3A;&#x6BCF;&#x5468;
monthly                  &#x6307;&#x5B9A;&#x8F6C;&#x50A8;&#x5468;&#x671F;&#x4E3A;&#x6BCF;&#x6708;
logrotate &#x89E6;&#x53D1;&#x6761;&#x4EF6;&#x53C2;&#x6570;
rotate count             &#x6307;&#x5B9A;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;&#x5220;&#x9664;&#x4E4B;&#x524D;&#x8F6C;&#x50A8;&#x7684;&#x6B21;&#x6570;&#xFF0C;0 &#x6307;&#x6CA1;&#x6709;&#x5907;&#x4EFD;&#xFF0C;5 &#x6307;&#x4FDD;&#x7559;5 &#x4E2A;&#x5907;&#x4EFD;
size(&#x6216;minsize) log-size &#x5F53;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;&#x5230;&#x8FBE;&#x6307;&#x5B9A;&#x7684;&#x5927;&#x5C0F;M&#x3001;G&#x65F6;&#x624D;&#x8F6C;&#x50A8;

执行触发时间

logrotate默认走的是 crond服务 ,执行语句脚本存放在 /etc/cron.daily/ 目录下,主要脚本: /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf

logrotate command in Linux

默认触发时间配置文件存在 /etc/anacrontab ,默认执行时间 每日 3.45-22.45 时间段随机执行一次。缺点是具体执行时间不容易掌握,通常不建议用户对该文件进行修改,如果需要定期执行,建议用户可以在 vim /etc/crontabcrontab&#xA0; -e 按照 crond 格式设定执行时间,以便更好的分配脚本执行时间,避免机器资源集中使用,减少机器负载。

logrotate command in Linux

Original: https://www.cnblogs.com/xiong97/p/16500392.html
Author: 静言善思
Title: logrotate command in Linux

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/611786/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【数据库】– MySQL SQL调优笔记(2)

    1.常规索引优化方式 1.1.单表优化 查询category_id为1且comments大于1的情况下,views最多的article id SELECT id, author_i…

    数据库 2023年5月24日
    074
  • 女同桌找我要表情包,还好我会Python,分分钟给她下载几十个G…

    emmm~ 起因呢,这昨晚女同桌跟我说电脑有点卡,喊我去宿舍给她装个新系统,装系统就装系统吧,结果又说新系统表情包都没保存~ 我当时就有点生气,真当我是万能的呢? 于是我直接就用P…

    数据库 2023年6月14日
    088
  • 教师节我用Python做了个学生点名系统送给老师当礼物,这回毕业稳了

    今年教师节前夕,我特意用Python做了个学生点名系统,非常好用,送给各科老师、辅导员当节日礼物,老师们都喜滋滋,说平常逃课就原谅我了,我心想,这次毕业应该不是问题了~ 本文背景 …

    数据库 2023年6月14日
    076
  • Hadoop生态二—Hadoop资源管理调度平台Yarn

    Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而mapreduce等运算程序则相当于运行于操作系统之上的应用程序Yarn是一个资源调…

    数据库 2023年6月6日
    0105
  • jupyter使用虚拟环境

    为了在jupyter中使用pyTorch的虚拟环境,来记录一下怎么操作一、conda命令的使用因为使用的是jupyter,所有就使用Anaconda Prompt来创建虚拟环境(也…

    数据库 2023年6月14日
    074
  • 用户管理

    介绍Linux用户组的概念和对用户添加,删除和指定密码的基本操作 用户管理 Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一…

    数据库 2023年6月16日
    0107
  • 16-ArrayList和LinkedList的区别

    1.1、作用 ArrayList和LinkedList都是实现了List接口的容器类,用于存储一系列的对象引用。它们可以对元素的增删改查进行操作 对于ArrayList,它在集合的…

    数据库 2023年6月16日
    072
  • 栈和队列数据结构

    栈和队列都是常用的数据结构。栈的应用非常的广泛,其原理也是非常经典的。 一、栈 ①栈(stack)又名堆栈,他是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这…

    数据库 2023年6月11日
    0114
  • 关于Mysql索引的数据结构

    索引的数据结构 1、为什么使用索引 &#x6982;&#x5FF5;: 索引是存储索引用于快速找到数据记录的一种数据结构,就好比一本书的目录部分,通过目录中对应的文…

    数据库 2023年5月24日
    086
  • 员工离职困扰?来看AI如何解决,基于人力资源分析的 ML 模型构建全方案 ⛵

    💡 作者:韩信子@ShowMeAI📘 数据分析实战系列:https://www.showmeai.tech/tutorials/40📘 机器学习实战系列:https://www.s…

    数据库 2023年6月14日
    074
  • JavaWeb连接MySQL数据库

    JavaWeb连接MySQL数据库 JavaWeb连接MySQL数据库的方式有很多,首先我们讲解JDBC的配置方法 一、JDBC的配置方法 1、什么是JDBC 什么是JDBC嘞?J…

    数据库 2023年5月24日
    065
  • MySQL的权限管理和Linux下的常用命令

    1.管理用户: root,具有最高权限,具有创建用户的权限,可以为其他用户授权 2.普通用户: 普通由root用户创建,权限由root分配 — mysql创建用户: create…

    数据库 2023年6月16日
    049
  • Java关键字总结(一)

    static总结: 1、修饰静态变量,通过类名.变量名,不需要实例化对象,属于静态资源,所有类实例共享 2、修饰静态方法,通过类名.方法,不需要实例化对象,属于静态资源,所有类实例…

    数据库 2023年6月6日
    0111
  • Mysql 触发器

    Mysql触发器 1、1 触发器定义 ​ 触发器是由事件来触发某个操作, 事件包括 insert update delete事件, 优势: 保证数据完整性。 触发器可以帮助记录操作…

    数据库 2023年6月11日
    075
  • python基础(待补充)

    第一篇:计算机的基础知识 编程语言的介绍 计算机介绍和五大组成 平台与软件跨平台介绍 CS、BS架构和网络通信协议 操作系统的介绍 cpu详解 存储器详解 操作系统启动流程和BIO…

    数据库 2023年6月14日
    081
  • Read View的可见性判断理解

    读了 @SnailMann大佬【MySQL笔记】正确的理解MySQL的MVCC及实现原理 收益颇丰,非常感谢! 但对其中如何判断事务是否可见性还是不太理解,于是作了本文,在原博客基…

    数据库 2023年6月16日
    068
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球