首页 > 其他分享 >logrotate详情和坑点

logrotate详情和坑点

时间:2023-05-16 10:07:18浏览次数:35  
标签:文件 轮转 坑点 转储 ## 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个参数
   sharedscripts
   postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
   endscript

总结 :个人认为有点鸡肋的功能,你设置了其中的参数,但他不一定生效 不如个人写个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 || true
    endscript               ##轮转后的脚本段
}

标签:文件,轮转,坑点,转储,##,logrotate,详情,日志
From: https://blog.51cto.com/u_15376515/6282420

相关文章

  • BBS-文章详情页面
    目录一、添加路由1、详情页路由2、点赞点踩路由3、评论功能路由二、文章详情功能前端文章详情页前端步骤点赞点踩js步骤评论功能前端代码三、添加视图函数文章详情页点赞点踩评论功能总结怎么防止路由冲突呢?排查错误点击文章标题跳转到具体的文章中去重点功能:点赞点踩数前端实......
  • 获取拼多多商品详情api、接口获取宝贝详情、产品详细属性Java示例说明
    ​ ​编辑拼多多是一家创新型的社交电商平台,成立于2015年,总部位于上海。它突破了传统电商的商业模式,通过社交传播与砍价团购的方式,为用户提供更便宜、更优质的商品。截至2021年第一季度,拼多多用户数量已经超过8亿,是中国最受欢迎的电商平台之一。pinduoduo.item_get根据ID取商......
  • Nginx容器挂载日志卷的日志切割: logrotate
    logrotate是一个日志文件管理工具,用来把旧文件轮转、压缩、删除,并且创建新的日志文件.1).功能:配合crontab控制启动,按配置定义的分割时间和保留分割文件数量来控制日志生成和删除.2).语法:logrotate[参数]<路径/配置文件>-d,--debug调试模式,输出调度结果,并......
  • 景点API支持查询携程旅游门票景点详情
    门票景点详情,景点api支持查询携程旅游门票景点详情。接口名称:景点api接口平台:开放api接口地址:http://api2.juheapi.com/xiecheng/senicspot/ticket/info支持格式:JSON请求方式:HTTP POST/GET请求示例:http://api2.juheapi.com/xiecheng/senicspot/ticket/info?scenicspotid=234&key=......
  • php获取1688阿里巴巴关键字搜索新品数据API接口、获取上新关键词推荐、获取宝贝详情数
    ​ php的主要优势以及特点: 便于学习和使用:PHP是一门非常容易学习和使用的语言,其语法和结构都非常简单。具有广泛的应用范围:PHP可以用于开发各种类型的Web应用,如博客系统、内容管理系统、电子商务网站、社交网络等。巨大的社区支持:有一个庞大的PHP社区,提供了大量的......
  • 【jmap】jmap命令详情
    简介1、jmap能够打印给定Java进程、核心文件或远程DEBUG服务器的共享对象内存映射或堆内存的详细信息。2、如果给定的进程运行在64位虚拟机上,则必须指定-J-d64选项,例如jmap-J-d64-heappid。3、jmap可能在未来的JDK版本中删除。可用于内存溢出,泄露等情况的内存分析使用......
  • Java获取pdd详情api接口、商品详情、商品描述、宝贝链接获取展示示例
    ​拼多多商品详情就是对拼多多商城中的宝贝的描述了,消费者们在进入到宝贝的详情页面后,可以通过这些描述去了解该款宝贝。其实这样也可以大大的增加商品的转化率。那么它的作用有什么呢?1.突出商品卖点:把商品的特色和突出点写表现出来,很更好的吸引到顾客,让顾客有点击和购买的欲......
  • 1688|Taobao|JD京东api接口获取商品详情C++演示案例
    ​ 商品详情页的作用:介绍产品信息、给出购买理由、提升信任感、提出售后保障。1、介绍产品信息:产品信息表做得越完整,越能让用户更细致了解产品,也减少了售前客服咨询的工作量。2、给出购买理由:在用户初步了解了产品信息后,商家就需要展示商品优势,给出核心卖点。接下来小编会展......
  • 利用Python爬虫采集1688商品详情数据 +商品列表数据+商品API接口(支持全网)
    一、如何通过手动方式查看1688商品详情页面的数据1.1688商品详情API接口(item_get-获得1688商品详情接口),1688API接口代码对接可以获取到宝贝ID,宝贝标题,价格,掌柜名称,库存,最小购买数,宝贝链接,宝贝图片,品牌名称,商品详情,详情图片等页面上有的数据均可以获取到,手动方式如下:例......
  • C++获取阿里巴巴1688中国站店铺详情 API 接口返回值示例说明
    ​C++(cplusplus)是一种计算机高级程序设计语言,由C语言扩展升级而产生,最早于1979年由本贾尼·斯特劳斯特卢普在AT&T贝尔工作室研发。C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。......