一、logrotate介绍

logrotate是centos自带命令,其他linux操作系统可能需要自行安装,用来进行日志切割和定期删除,简单来说就是将某个日志文件按照时间或大小分割成多份,删除时间久远的日志。

日志用来帮助我们了解程序运行情况,定位程序bug,如果不对日志及时进行清理就会占据磁盘空间,尤其对于服务器类型的项目,需要长期运行,日志量更大,一年前的日志大部分情况下对我们是无用的也无需保留,并且如果我们的日志记录频率很高,全部存储在一个文件中,文件是很大的,当需要查看时,使用vim或者其他软件打开也会很卡。

二、配置讲解

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

有几个重要的配置:

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

/etc/logrotate.conf是全局配置,logrotate.conf里面包含include /etc/logrotate.d这句,加载子配置文件的意思,说明/etc/logrotate.d/目录下是具体的配置,一般是以服务名称命名,比如yum等配置。主配置和子配置有冲突时,以子配置的规则为准。

logrotate配置文件及常用参数解释如下图:

2、/var/lib/logrotate.status,是logrotate自己的日志文件

记录logrotate的运行情况,可以查看被logrotate管理的日志文件的最后备份时间

3、logrotete 命令参数

(上面三个照片来源:b站截图,侵删)

三、实现

实现方式有两种

方案1:是在原有的配置下新增(在主配置或子配置新增),依旧被原来的cron管理,系统的cron管理一般是每天执行一次,基于计划任务/etc/cron.daily/logrotate

方案2:是在自己在任意位置新建配置文件,然后自己写定时任务来管理,自己写定时任务更灵活,可以每小时,每天23:59:00,每周等任何时刻执行logrotate命令,但两者原理是一样的,都是logrotate命令被执行时就按照logrotate配置文件来切割清理日志

案例:方案2,每天23:59:00执行logrotate命令,按天清理,保留5天

step1,任意位置写配置文件,权限改成644

step2,写定时任务,定时执行logrotate

crontab -e写入,内容为“  59 23 * * * /usr/sbin/logrotate -f /home/zmq/daily_logrotate  ”

step3,修改系统时间,测试效果

调整系统时间为23:58:30,等待30s

切割成功,logrotate本身的日志也记录在/var/lib/logrotate.status里了

四、注意事项

1、如果像我这样,自己新增一个配置文件,需要给配置文件的权限设置成644及以下,否则logrotate不生效

2、logrotate -d hello.conf :加-d运行该命令,只是测试此时是否满足日志分割的条件,实际上并没有进行分割备份文件

3、-f 参数,强制执行日志分割清理的功能,我觉得加上更好,因为执行logrotate命令要检查很多(比如系统时间等),导致执行失败,所以直接 -f 强制执行,简单粗暴

4、参考文章:这两文章有些点解释的很好,侵删

logrotate自定义切割时间的一些坑 - 梦轻尘 - 博客园

Linux日志切割神器logrotate原理介绍和配置详解 - 知乎

logrotate实现日志切割和清理(清晰易懂)相关推荐

  1. windows 下对mongoDB 的日志切割,清理

    由于windows下部署mongoDB时,默认注册成windows 服务,所以nssm已经无法再次配置mongoDB,需要通过脚本完成 1.mongoDB的日志切割脚本: 写个rotate.js 然后 ...

  2. logrotate工具日志切割

    /var/log/zabbix/zabbix_server.log {daily ##每天转储rotate 60 ##保留60个备份olddir /usr/local/src ##保存日志的位置com ...

  3. nginx日志切割logrotate

    环境是docker-compose,日志是挂载出来的,通过logrotate进行日志切割. 安装logrotate yum install logrotate -y 在 /etc/logrotate. ...

  4. 【09】Nginx:静态压缩 / 日志切割 / 防盗链 /恶意解析/ 跨域

    写在前面的话 上一节我们谈了关于 nginx 服务器的一些简单的安全优化问题,能够帮助我们解决一部分线上服务存在的安全隐患.但是想要提升用户体验这是原因不够的,我们还需要从服务的优化方面入手. 本节更 ...

  5. 运维中的日志切割操作梳理(Logrotate/python/shell脚本实现)

    对于Linux系统安全来说,日志文件是极其重要的工具.不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分Nginx日志之类的CRON脚本,大家似乎遗忘了Logrotate,争相发明自己的轮 ...

  6. catalina.out 日志切割及定时清理

    一.安装 1.. 安装使用cronolog工具对catalina.out日志文件进行切割 # wget http://cronolog.org/download/cronolog-1.6.2.tar. ...

  7. Linux日志切割工具logrotate原理和配置详解

     前言: 对于Linux系统安全来说,日志文件是及其重要的工具 一.logrotate概念 1.1 概念 logrotate 程序是一个日志文件管理工具.用于分割日志文件,删除旧的日志文件,并创建新的 ...

  8. Linux日志切割神器Logrotate的原理和配置详解,建议收藏!!!

    对于 Linux 系统安全来说,日志文件是极其重要的工具.不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分 Nginx日志之类的 CRON脚本,大家似乎遗忘了 Logrotate,争相发 ...

  9. Linux 日志切割神器 Logrotate 原理和配置详解(附多生产实例)

    点击上方"民工哥技术之路",选择"设为星标" 回复"1024"获取独家整理的学习资料! 对于 Linux 系统安全来说,日志文件是极其重要的 ...

最新文章

  1. 一对一直播app源码功能操详解方案分享
  2. 基坑监测日报模板_长沙一工地基坑坍塌致2人死亡!基坑坍塌的瞬间,只有无能为力和惊心动魄!...
  3. python快速上手下载_初学者如何尽快上手python
  4. catia相合约束怎么反向_人是怎么不知不觉废掉的?进来,帮你
  5. 【CF1338C】Perfect Triples【位运算】【构造】
  6. python识别手写文字_如何快速使用Python神经网络识别手写字符?(文末福利)
  7. mysql中phpmyadmin安装教程_phpMyAdmin 安装教程全攻略
  8. vue 点击div 获取位置_vue接入腾讯位置服务之点击事件
  9. [转]find命令之exec
  10. PowerBI制作报表背景图
  11. mutillidae(owasp10)数据库报错
  12. 编译 pg_repack
  13. 二十一世纪最该了解的一类人:找个极客做朋友吧
  14. SPSS回归分析结果解读【来自百度知道】
  15. 骨感传导蓝牙耳机怎么样、骨感传导蓝牙耳机有什么特点
  16. 20194311姜晨昊Exp2-后门原理与实践
  17. office 2010 报1920错误 (未能启动服务 “Office Software Protection Platform”(osppsvc))
  18. php 编译mcrypt,linux php7.2.1 编译安装mcrypt
  19. 数据分析与R软件(第二版)李素兰著 各章例题数据和程序
  20. 简版:读、实践《动手学深度学习》

热门文章

  1. img ,background-img,background-size
  2. win10 3D viewer
  3. ubuntu系统(七):工控机连接手机热点
  4. OpenStack云平台搭建(3) | 部署Glance
  5. 基于计算机视觉的手势识别技术
  6. 对PhD一年级新生有什么建议?
  7. (ZT) 上海房价再涨五倍也并非天方夜谭?
  8. Python根据出生日期判断你的星座
  9. 无线路由器桥接(以不同品牌为例tplink和fast)
  10. cad图纸比对lisp_CompareDWG|CAD图纸比较软件(CompareDWG)下载v2018 官方版 - 欧普软件下载...