rotate:轮转、交替、转动、试转动

服务器在服务运行的时候,难免会生成大量日志,一般来说遇到日志过多的情况,就会写一个看门狗:监控磁盘容量的大小,如果磁盘剩余空间小于某个值,就去日志文件夹里把一个月或者几个月之前的废弃日志删除掉以达到释放磁盘空间的目的。

但是往往有的时候过期的日志很重要,或者即使是一周的时间内,也会生成容量非常可观的日志,那么就需要使用logrotate命令来管理这些日志,这个命令是linux自带的。

logrotate这个命令的用法请看:https://linux.cn/article-8227-1-rel.html 和 https://linux.cn/article-4126-1.html 。

这里简单做一个实验,首先,假设服务器里某个日志文件夹里的日志auc.log.10是这样的:

然后在logrotate的配置文件是这么写的:

/mnt/hswx/auc/logs/auc.log.10 {             这里是目标日志的绝对路径daily        每天执行一次minsize 200M    文件容量大于200M开始处理,如果到了时间但是没有大于200M,不会处理compress          压缩dateext          文件会以日期为后缀create 777 root root    新建的那个日志文件属性是777rotate 2         保留最多2个文件
}

然后执行#logrotate -vf /etc/logrotate.conf,看到的效果是:

命令执行后,服务器create了新的auc.log.10,而且属性变成了777,同时把原有的部分压缩成gz的格式。

上面那个测试的对象是已经过期的日志,现在我们要压缩当前的日志,目的是“在压缩了auc.log并且重命名之后,可以生成新的auc.log,同时这个新的auc.log会被写入”。

现在我们尝试一下,把原来的配置文件改成这样:

/mnt/hswx/auc/logs/auc.log {weeklyminsize 200Mcompressrotate 2
}

但是执行之后,我们发现变成了这样:

原来的auc.log不见了,而出现的auc.log.1里面的内容是原来auc.log的内容,可见原有的auc.log已经被顶掉了。这是因为我们上面的配置文件里面没有加上dateext,所以默认会以.1、.2、.3为后缀。

问题是我们没有生成auc.log,那么这段时间的日志就会找不到auc.log而凭空消失。可见这个方法没有达到我们的目的,需要改进。

但是只有重新启动这个auc进程才会生成auc.log,既然要解决这样的问题,我们很自然的就想到“kill -HUP”这种平滑启动的方式,但是要注意!kill -HUP 对deamon会进行重新读取配置启动,但是对于普通的进程只会把其杀死!而这个auc 就是一个普通的java程序,没有配套的守护进程。所以只能使用一般的重启方式来达到生成auc.log这个目的。

首先我们把原来的配置文件改成这样:

/mnt/hswx/auc/logs/auc.log {weekly    #每周执行dateext    #以日期作为后缀minsize 200M    #到达了200M自动执行,不然即使到了一周的时间也不执行compress    #压缩rotate 2    #最多保留两个文件sharedsripts    postrotate    #在执行完日志压缩之后就执行如下动作/bin/bash /root/restart.sh    #动作就是执行这个绝对路径的脚本endscript    #收工
}

而这个restart.sh的内容很简单:

#!/bin/bash
cd /mnt && ./stopAUC.sh    #停止auc进程
cd /mnt && ./startAUC.sh    #启动auc进程
echo HAHAHAHA!!!    #表示已经OK了,让我们发出杠铃一般的笑声

现在我们重新跑一下logrotate,#logrotate -vf /etc/logrotate.conf。看一下效果:

可以看到先把日志改名压缩,完事后也执行了restart.sh这个脚本,再日志里一看,auc.log也顺利生成了!

参考资料:http://www.pythondev.org/post/8.html

转载于:https://blog.51cto.com/chenx1242/1942514

日志文件管理者:Logrotate相关推荐

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

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

  2. linux去掉日志中的skipping,Linux日志文件总管 logrotate

    logrotate介绍 参考:https://linux.cn/article-4126-1.html 参考:https://blog.csdn.net/vicky_lxw/article/detai ...

  3. linux 日志按大小切割_日志切割工具logrotate,帮你管理你的日志文件

    最近线上系统跑的业务量有点上量,虽然系统性能是稳定的,但是却有另外一个问题,那就是日志文件越来越大,占用的磁盘空间就越来越大,这样经常会收到告警信息,不得不手动去清理这些日志文件,这样手动维护的服务是 ...

  4. rsyslogd以及日志轮替logrotate的梳理

    rsyslog 1)日志类型 auth :(authpriv) 主要与认证有关的机制,例如 login, ssh, su 等需要帐号/密码的咚咚: cron: 就是例行性工作排程 cron/at 等产 ...

  5. 使用logrotate管理nginx日志文件

    本文转载自:http://linux008.blog.51cto.com/2837805/555829 描述:linux日志文件如果不定期清理,会填满整个磁盘.这样会很危险,因此日志管理是系统管理员日 ...

  6. Linux使用logrotate来切割日志文件

    程序在运行的时候为了了解运行状态,会输出日志文件,时间久了日志文件会变得非常大,甚至达到GB级别.我在golang应用里使用logrus包来打日志,配置和使用都很方便,就是没有日志分割的功能,应用在线 ...

  7. Linux下自动分割Nginx日志文件(三)-----Logrotate

    logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循).压缩以及删除旧的日志文件.例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月 ...

  8. 开发日记-20190801 读书笔记《Linux 系统管理技术手册(第二版)》关键词logrotate 管理日志文件

    logrotate的位置文件由一系列规范组成,他们说明了要管理的日志文件里.出现在日志文件规范之外的选项(诸如下面例子中的errors,rotate和weekly)适用于后面的规范,它们可以在特定日志 ...

  9. 如何在Centos 7上用Logrotate管理日志文件

    何为Logrotate? Logrotate是一个实用的日志管理工具,旨在简化对系统上生成大量的日志文件进行管理. Logrotate允许自动旋转压缩,删除和邮寄日志文件,从而节省宝贵的磁盘空间. L ...

  10. logrotate管理nginx日志文件

    转自:http://linux008.blog.51cto.com/2837805/555829/ 描述:linux日志文件如果不定期清理,会填满整个磁盘.这样会很危险,因此日志管理是系统管理员日常工 ...

最新文章

  1. JavaScript实现levenshteinDistance字符串编辑距离算法(附完整源码)
  2. TestBird成为“国家手游测试中心”
  3. JavaEE的13种核心技术规范
  4. 使用 nuget server 的 API 来实现搜索安装 nuget 包
  5. 输入参数的数目不足 matlab_哈工大被禁用MATLAB,工科学生慌了,论文至上间接导致软件依赖?...
  6. unicode字符大全可复制_说说Excel不可见字符的那些事
  7. python预测股票价格tushare_用tushare对股票进行简单分析
  8. C语言指针和数组概述
  9. 删库跑路事件发生,SaaS云服务如何守护数据安全
  10. android 读取sd卡中string.xml,android,从SD卡读取xml文件中的值
  11. JS规则 自加一,自减一 ( ++和- -) 【mynum = mynum + 1;//等同于mynum++;】
  12. ASP.NET Core SignalR +微信小程序整理(一)
  13. 1计算机组成及作用是什么,如何理解计算机组成和计算机体系结构?
  14. 抖音推独立社交产品“多闪” 主打视频社交PK微信
  15. 前馈神经网络练习:使用tensorflow进行葡萄酒种类识别
  16. 采样频率和带宽的关系_示波器的带宽与采样率是什么关系
  17. 厉害了,又一个资源神器
  18. 给自家人做个招聘广告,前后端和移动工程师看过来
  19. 图片压缩工具Thumbnailator的使用
  20. 批处教程 for /f 中的Delims和Tokens总结

热门文章

  1. 桌面APP打包利器 —— Node-webkit
  2. 计算机游戏制作英文要学好吗,有关怎么不沉迷于电脑游戏的英语作文你的同学MICHAEL沉迷于电脑游戏中,影响了学习.作为好朋友,你要怎么帮助他?写一篇80词左右的英语作文....
  3. linux 启动作业,[转载] 随身带着走的作业系统 ~安装Linux作业系统于随身碟~
  4. 记录:Linux 设置文件夹 0777 权限失效问题
  5. PHP:同时发送多个异步ajax请求,但数据却是按同步顺序返回
  6. 编程基本功:正常运行的代码,你看明白能做什么?不如解决几个简单BUG
  7. 编码基本功:遇到打印问题怎么办
  8. libtool: Version mismatch error
  9. 百度地图与高德地图比较
  10. 无继承情况下的对象构造