logrotate详情和坑点
logrotate 配置参数
compress 通过gzip压缩转储以后的日志nocompress 不压缩copytruncate 用于还在打开中的日志文件,把当前日志备份并截断nocopytruncate 备份日志文件但是不截断create mode owner group 转储文件,使用指定的文件模式创建新的日志文件nocreate 不建立新的日志文件delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。errors address 专储时的错误信息发送到指定的Email 地址ifempty 即使是空文件也转储,这个是 logrotate 的缺省选项。notifempty 如果是空文件的话,不转储mail address 把转储的日志文件发送到指定的E-mail 地址nomail 转储时不发送日志文件olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统noolddir 转储后的日志文件和当前日志文件放在同一个目录下prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行daily 指定转储周期为每天weekly 指定转储周期为每周monthly 指定转储周期为每月rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~size size 当日志文件到达指定的大小时才转储,bytes(缺省)及KB(sizek)或MB(sizem)
坑点
本人亲测
坑一:
logrotate 使用系统cron运行 默认是每天运行一次
所以你设置各种参数,有可能还是不运行的,比如每小时检测日志大小切割,除非你添加每小时运行的计划任务
脚本路径
/etc/cron.daily/logrotate
解析
#!/bin/sh/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf ##运行日志轮转命令
EXITVALUE=$? ##这段是监测轮转是否正常完成,不正常写入系统日志
if [ $EXITVALUE != 0 ]; then/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
坑二:
logrotate的三种size方式
请时刻记住不设置计划任务的话 默认每天执行一次日志轮转命令
minsizi 两个条件都满足 ,大小到了,并且执行了日志切割命令 (周期内执行0、1次)
maxsizi 任一条件 (周期内执行1、n次)
sizi 大小到了就执行 ,但是要设置每分钟执行日志切割命令(设置后,周期参数自动失效)(无周期概念)
坑三:
logrotate的轮转周期
会影响轮转命令的执行,
不添加 sizi参数时,为执行命令的最小周期
添加后,根据具体sizi参数变化
坑四
logrotate的dateformat参数
只支持 %Y %m %d %H %s 这五种时间格式dateformat -%Y%m%d%H.%s
效果 2021072214.1626933601
坑五
切割后继续往旧日志里写日志
系统日志相关
添加这3个参数sharedscriptspostrotate/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || trueendscript
总结 :个人认为有点鸡肋的功能,你设置了其中的参数,但他不一定生效
不如个人写个shell脚本去检测,清理,一系列操作 添加个计划任务,但是没办法,系统自带的 肯定也是最稳定的,还是人太菜,可能没玩明白吧
示例:
{ compress ##gizp 压缩delaycompress ##转储后下一次再压缩rotate 6 ##备份和压缩备份一共6个create 0600 root root ##创建原文件源属性copytruncate ##无间断转储missingok ##忽略错误dateext ##启用时间格式dateformat -%Y%m%d%H.%s ##自定义时间格式sharedscripts ##轮转后的脚本段 (作用为,告知syslogd,使用新文件写入)发现配置后继续写入旧文件时配置该段postrotate ##轮转后的脚本段/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || trueendscript ##轮转后的脚本段
}
logrotate详情和坑点相关推荐
- Android通知栏字体大小,Android通知栏介绍与适配总结(上篇)
此文已由作者黎星授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 由于历史原因,Android在发布之初对通知栏Notification的设计相当简单,而如今面对各式各样的通知 ...
- Android通知栏介绍与适配总结(上篇)
此文已由作者黎星授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 由于历史原因,Android在发布之初对通知栏Notification的设计相当简单,而如今面对各式各样的通知 ...
- Android通知栏介绍与适配总结
由于历史原因,Android在发布之初对通知栏Notification的设计相当简单,而如今面对各式各样的通知栏玩法,谷歌也不得不对其进行更新迭代调整,增加新功能的同时,也在不断地改变样式,试图迎合更 ...
- Linux小白第一天——VMware Player 装 CentOS
装机前 硬件基础 AMD和Intel设计理念上把内存控制组集成到CPU里面加速读写 在于AMD用Hyper Transport Intel使用QPI(Quick Path Interconnect)或 ...
- 谷粒商城笔记+踩坑(15)——商品详情搭建+异步编排
导航: 谷粒商城笔记+踩坑汇总篇 目录 1.搭建页面环境 1.1.配置 Nginx 和 网关 1.2.动静资源配置 1.3.搜索页到详情页跳转 2.模型类抽取和controller 2.1.分析首页需 ...
- 上货避坑指南 私域上货选品工具 无货源选品上货 采集商品详情数据API分享 详情图 sku信息
电商开店之后,第一件事就是上货了,上货其实也是有技巧的. 上传商品时我们一定要注意细节,不可忽略一些重要细节,所以商家们在上传商品前,不可忽略是否预售.标题.主图.详情页.保证金.上架时间这几个细节. ...
- [踩坑篇]logrotate切割日志后,日志还是写在老日志文件中
背景 公司的生产环境中,使用gunicorn部署后端后端django服务,每天会产生很多前端掉调用后端api的日志文件,为了方便管理这些文件,使用了Linux自带的日志切割工具logrotate,每天 ...
- Spring 5.0+Spring Boot+security+spring cloud oauth2+Redis整合详情,记录那些遇到的一些坑
1.使用的技术以及版本号 JDK8.0 Spring 5.0 oauth2.0 redis2.0 2.项目采用MAVEN管理. pom文件中加入: < dependency > < ...
- 避坑14_此浏览器或应用可能不安全。了解详情请尝试使用其他浏览器。
一.问题 登录谷歌浏览器同步数据时,显示如下错误: 此浏览器或应用可能不安全.请尝试使用其他浏览器.如果您使用的是受支持的浏览器,可以重新尝试登录. 二.解决方法 关闭chrome(最好重启电脑) 打 ...
最新文章
- 压缩感知及应用 源代码_【DMD应用】基于压缩感知超分辨鬼成像
- ElasticSearch实战:Linux日志对接Kibana
- opencv dnn完整示例
- linux 5005端口,Linux配置防火墙端口 8080端口
- Golang 正在成为互联网大厂的主流编程语言!
- php switch 函数,php switch case用法与实例教程
- dubbo的invoke命令_dubbo 调试服务telnet命令
- Java / JEE中的有效日志记录–映射的诊断上下文
- DDMMSS.SS转为DD
- 初中数学抽象教学的案例_初中八年级数学上册教学视频汇总
- JDK 动态代理与 CGLIB 动态代理,它俩真的不一样
- java使用场景什么意思_Java开发中类隐藏及应用场景分析是什么?
- 推荐系统之ALS算法详解
- 微信小程序实现刷脸登录
- 电脑上怎么批量压缩图片?如何快速批量压缩图片?
- 中国石油大学c语言程序设计答案,中国石油大学C语言程序设计第一册在线作业答案...
- 高通820系列(apq8098平台,androido系统),mmm external/ethtool-5.2/,报错
- 针对P2P终结者4.0版本的研究
- 用爬虫模拟登陆urp教务处系统
- 【服务器】本地运行成功,但服务器上运行却显示错误500
热门文章
- @Component与@Configuration区别
- 输入三个数按从小到大顺序输出_攀枝花数显型耐压测试仪公司,期待合作
- 搭建Mantis 缺陷管理系统
- c语言 substr,如何在C语言实现substr()
- mybatis sql解析问题(JSQLParserException)
- Web应用优化 - 优化切页模式
- Android拍照指定尺寸,相机在Android中,如何获得最佳尺寸,预览尺寸...
- 老男孩mysql运维dba实战21部完整版_老男孩MySQL高级专业DBA实战课程/高级运维DBA课程/MySQL视频教程 零基础全套...
- 茴字的四种写法——浅谈移动前端适配
- 汇丰,用数字技术创新奇妙体验