logrotate介绍

参考:https://linux.cn/article-4126-1.html

参考:https://blog.csdn.net/vicky_lxw/article/details/58594400

日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题。除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事。

logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件。例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月的日志。配置完后,logrotate的运作完全自动化,不必进行任何进一步的人为干预。另外,旧日志也可以通过电子邮件发送,不过该选项超出了本教程的讨论范围。

默认会安装如没有安装则使用 yum install logrotate crontabs 安装

命令参数

-d, --debug模式, 隐含-v,不会对日志文件做实际操作

-f, --force 强制轮转日志

-m, --mail 邮寄日志时使用的命令

-s, --state 指定另一个state文件

-v, --verbose 详细信息

--usage 打印帮助

配置文件参数

monthly: 日志文件将按月轮循。其它可用值为‘daily’,‘weekly’或者‘yearly’。

rotate 5: 一次将存储5个归档日志。对于第六个归档,时间最久的归档将被删除。

compress: 在轮循任务完成后,已轮循的归档将使用gzip进行压缩。

delaycompress: 总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。

missingok: 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。

notifempty: 如果日志文件为空,轮循不会进行。

create 644 root root: 以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件。

postrotate/endscript: 在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd 进程将立即再次读取其配置并继续运行。

实战

因为我们的日志已经被elk采集走了,所以本地的日志就没有必要保留一个月,而且会触发zabbix空间报警,所以修改日志处理策略

[root@baiyongjie logrotate.d]# ls /var/log/

anaconda boot.log-20191015 cron-20190930 journal messages-20190922 php-fpm secure-20191013 tuned yum.log

audit boot.log-20191016 cron-20191006 lastlog messages-20190930 redis spooler vsftpd yum.log-20190101

boot.log btmp cron-20191013 maillog messages-20191006 rhsm spooler-20190922 wtmp

boot.log-20191010 btmp-20191001 dmesg maillog-20190922 messages-20191013 sa spooler-20190930 xferlog

boot.log-20191011 chrony dmesg.old maillog-20190930 multi-nic-util secure spooler-20191006 xferlog-20190922

boot.log-20191012 cloud-init.log ecs_network_optimization.log maillog-20191006 mysqld.log secure-20190922 spooler-20191013 xferlog-20190930

boot.log-20191013 cron grubby maillog-20191013 ntp.log secure-20190930 squid xferlog-20191006

boot.log-20191014 cron-20190922 grubby_prune_debug messages ntpstats secure-20191006 tallylog xferlog-20191013

修改配置文件

因为是测试环境我直接修改的是全局的配置文件,生产环境应该修改/etc/logrotate.d/目录下的对应文件

$ cp /etc/logrotate.conf{,.bak}

#修改后对比

$ diff /etc/logrotate.conf{,.bak}

6c6

< rotate 2 #保留2周

---

> rotate 4

15,16c15

< compress #开启历史日志压缩

< delaycompress #指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。

---

> #compress

执行logrotate

$ logrotate -fv /etc/logrotate.conf

reading config file /etc/logrotate.conf

including /etc/logrotate.d

reading config file bootlog

reading config file chrony

reading config file mysql

reading config file php-fpm

reading config file redis

......

removing /var/log/secure-20190922.gz

removing old log /var/log/secure-20190922.gz

removing /var/log/secure-20190930.gz

removing old log /var/log/secure-20190930.gz

removing /var/log/secure-20191006.gz

removing old log /var/log/secure-20191006.gz

......

compressing log with: /bin/gzip

removing /var/log/btmp-20191001.gz

removing old log /var/log/btmp-20191001.gz

destination /var/log/btmp-20191016 already exists, skipping rotation

[root@baiyongjie ~]# ls /var/log/

anaconda boot.log-20191014.gz cron grubby_prune_debug messages-20191013.gz redis spooler-20191013.gz wtmp-20191016.gz

audit boot.log-20191015.gz cron-20191013.gz journal messages-20191016.gz rhsm spooler-20191016.gz xferlog

boot.log boot.log-20191016.gz cron-20191016.gz lastlog multi-nic-util sa squid xferlog-20191013

boot.log-20191010.gz btmp dmesg maillog mysqld.log secure tallylog xferlog-20191016

boot.log-20191011.gz btmp-20191016.gz dmesg.old maillog-20191013.gz ntp.log secure-20191013.gz tuned yum.log

boot.log-20191012.gz chrony ecs_network_optimization.log maillog-20191016.gz ntpstats secure-20191016.gz vsftpd yum.log-20190101

boot.log-20191013.gz cloud-init.log grubby messages php-fpm spooler wtmp yum.log-20191016.gz

线上示例

# cat /etc/logrotate.d/syslog

/var/log/cron

/var/log/maillog

/var/log/messages

/var/log/secure

/var/log/spooler

{

compress

delaycompress

daily

missingok

sharedscripts

postrotate

/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

endscript

}

linux去掉日志中的skipping,Linux日志文件总管 logrotate相关推荐

  1. linux日志中显示skipping,linux推荐使用logrotate自动管理日志文件

    最近发现在 一般系统都自带了,如果没有就安装个,容易简单. yum install logrotate apt-get install logrotate 命令参数说明 # logrotate --h ...

  2. Linux日志文件总管——logrotate

    日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题.除此之外,处理一个单个的庞大日 ...

  3. linux 匹配文本中的ip,linux文本三剑客匹配网卡IP地址大PK(CentOS 7系统)

    运维工程师在做配置的过程中很多时候都需要去获取目标服务器网卡上的IP地址,那究竟用什么方式获取更便捷了,博主今天就带大家使用linux文本三剑客分别获取一下网卡的IP地址,最后我们再来对比一下. 实验 ...

  4. linux 删除path中部分目录,Linux环境变量PATH的增添和删除操作

    1添加路径到PATH 添加路径可以直接给PATH赋值 export PATH=$PATH:新添加的路径 (关闭终端失效) $PATH是当前的路径1:路径2:路径3 ,在后面追加:新添加的路径,然后把这 ...

  5. 工作中常用的linux命令,工作中常用的Linux命令

    1.Linux软件安装命令 2.压缩解压缩 unzip -d apache-tomcat.zip tar -zxvf apache-tomcat.zip ---解压缩 tar -zcvf apache ...

  6. linux 在硬盘中创建文件系统,linux mkfs命令创建Linux文件系统

    功能描述 使用mkfs命令可以在分区上创建各种文件系统.mkfs命令本身并不执行建立文件系统的工作,而是去调用相关的程序来执行.这里的文件系统是要指定的,如ext4.ext3.vfat或msdos等. ...

  7. linux守护进程中多线程实现,Linux下实现多线程客户/服务器

    在传统的Unix模型中,当一个进程需要由另一个实体执行某件事时,该进程派生(fork)一个子进程,让子进程去进行处理. Unix下的大多数网络服务器程序都是这么编写的,即父进程接受连接,派生子进程,子 ...

  8. linux卸载dev中的设备,Linux /dev 常见特殊设备介绍与应用

    linux是文件型系统,所有硬件如软件都会在对于的目录下面有相应的文件表示.对于dev这个目录,我们知道它下面的文件,表示的是linux的设备.在windows系统中,设备大家很好理解,象硬盘,磁盘指 ...

  9. linux与window中sleep函数的头文件

    windows下的Sleep函数,首字母为大写,声明在windows.h头文件中,其参数usigned long类型,为毫秒数,即Sleep(1)为睡眠1毫秒. linux下的sleep函数,首字母为 ...

最新文章

  1. 线性可分 与线性不可分
  2. new和delete底层解析
  3. C# 数组与 list 互相转换案例
  4. Django获取model中字段的中文列名
  5. ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
  6. python读取csv某些行_【Python】Python 读取csv的某行或某列数据
  7. Django学习---原生ajax
  8. java 登录编程_Java编程通过session访问需要登录的页面
  9. 安装Windows7出现:”安装程序无法创建新的系统分区 也无法定位系统分区“ 终极解决方案...
  10. python pyqt eric_python+PyQT+Eric安裝配置 | 學步園
  11. android下在屏幕适配小总结
  12. 用nginx部署前端项目
  13. 使用IBM SPSS Statistics的新手应该如何入门
  14. GO语言+区块链视频教程,GO语言+区块链学习线路图(含大纲+视频+资料)
  15. 智能机器人软件开发入门教程:带你从0到1快速入门
  16. 枫叶HD高清视频转换器 V10.2.2.0 官方安装版
  17. 微服务实施笔记(三)——建立待发现服务
  18. PROFINET分布式I/O总线模块的优势有哪些?
  19. 用事实说话,成熟的ORM性能不是瓶颈,灵活性不是问题:EF5.0、PDF.NET5.0、Dapper原理分析与测试手记(转)...
  20. 达梦mpp相当于oracle什么,DM7 达梦数据库 大规模并行处理 MPP (1) -- 基本概念和原理...

热门文章

  1. 使用AWS DMS 升级Postgre 10到12
  2. activemq 修改服务端端口61616和控制台端口8161启动
  3. hdu5106 小于x的数(二进制1确定的数)的和 数位dp(first mine)
  4. 让MySQL支持InnoDB
  5. 全球通用头像gravatar介绍
  6. linux关机机器语言,Linux 核心源代码分析 - 第十章 开机 关机 [续二] [超星]...
  7. const 与 readonle 的异同
  8. 自然语言处理中的Attention Model原理介绍
  9. cisco ios cookbook
  10. 数字证书产品的主题通常含有如下字段