最近在看日志管理的资料,发现网上很多朋友做日志分割很多情况是用脚本+cron实现(自己以前也是这样做的),但恰恰忘记logrotate这个好用的工具。它可以自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件。Linux系统/var/log目录下的系统日志就是通过它实现的。

准备

一般主流的CentOS、Debian和Ubuntu系统都自带有安装。确认是否有该命令,执行logrotate。下面以Ubuntu系统和分割Apache日志为例,详细介绍logrotate的配置。

zhangnq@ubuntu:~$ logrotate

logrotate 3.7.8 - Copyright (C) 1995-2001 Red Hat, Inc.

This may be freely redistributed under the terms of the GNU Public License

用法: logrotate [-dfv?] [-d|--debug] [-f|--force] [-m|--mail=command] [-s|--state=statefile] [-v|--verbose] [-?|--help] [--usage] [OPTION...]

说明已经安装,如果提示命令不存在,就执行手动安装。

apt-get install logrotate

简单了解

logrotate是通过cron来执行,触发脚本放置在/etc/cron.daily/logrotate,内容类似如下。运行时logrotate会调用/etc/logrotate.conf主配置文件,每个应用配置放置在/etc/logrotate.d目录。

#!/bin/sh

# Clean non existent log file entries from status file

cd /var/lib/logrotate

test -e status || touch status

head -1 status > status.clean

sed 's/"//g' status | while read logfile date

do

[ -e "$logfile" ] && echo "\"$logfile\" $date"

done >> status.clean

mv status.clean status

test -x /usr/sbin/logrotate || exit 0

/usr/sbin/logrotate /etc/logrotate.conf

配置

Logrotate简单介绍完,下面开始实际配置。我的Apache安装后默认日志放在/var/log/apache2,下面是我写的apache配置文件。

root@ubuntu:~# cat /etc/logrotate.d/apache2

/var/log/apache2/* {

daily

rotate 30

compress

delaycompress

missingok

notifempty

create 644 www www

sharedscripts

postrotate

/etc/init.d/apache2 restart >/dev/null

endscript

}

说明:

1、监控/var/log/apache2目录下的所有文件,*标识通配符,也可以指定某个日志文件。

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

3、rotate 30:一次将存储30个归档日志,超过后时间最久的归档将被删除。

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

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

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

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

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

9、sharedscripts:在所有的日志文件都轮转完毕后统一执行一次脚本。如果没有配置这条指令,那么每个日志文件轮转完毕后都会执行一次脚本。

10、postrotate/endscript:在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。示例中重新加载apache。

当然也可以配置size,例如“size 100M”。同时配置轮询周期和文件大小时,文件大小的优先级大。

测试

logrotate提供一个-d选项,仅做运行测试,不错实际操作。如果不想等到cron执行,也可以强制执行,把-d选项就好。

例如:

logrotate -d -f /etc/logrotate.d/apache2

logrotate -f /etc/logrotate.d/apache2

有关logrotate的详细配置可以参考:http://linuxcommand.org/man_pages/logrotate8.html

logrotate测试_Linux系统日志管理工具logrotate的配置相关推荐

  1. logrotate测试_Linux自带神器logrotate详解

    周一上班,就被开发组那哥们儿拉进电话会议,说他们的服务又挂了,估计磁盘又爆掉了.登录到web服务上,上来 df -h 一把,果然,挂的一个共享又被撑爆. root@websrv001 ~ # df - ...

  2. logrotate测试_Logrotate日志管理工具

    导读 logrotate是一个日志管理程序,用来把旧的日志文件删除(备份),并创建新的日志文件,这个过程称为"转储".我们可以根据日志的大小,或者根据其使用的天数来转储. logr ...

  3. linux日志管理工具logrotate配置

    linux日志管理工具logrotate配置 logrotate介绍 logrotate配置讲解 主配置文件解释(/etc/logrotate.conf) logrotete 命令参数 添加配置 以添 ...

  4. 超微服务器修改带外ip,几个品牌服务器带外远程管理工具的初始配置

    本文记录对几个品牌服务器的带外管理工具的基本配置指令进行记录. 目前主流的服务器都带有带外管理功能,部分品牌可能需要额外购买授权才能使用.带外管理工具的意义在于当服务器系统出现问题,无法使用常规的带内 ...

  5. logrotate测试_简单好用的日志管理工具 Logrotate

    前言 日志就像程序的生命记录仪,详细记录下了程序运行的点点滴滴. 慎重的选择记录哪些日志:在茫茫日志海中寻找真正记录问题的日志,你是不想经历的: 精心的定时压缩转移日志:故障发生了,日志却丢了,此时的 ...

  6. logrotate测试_logrotate 日志管理

    a.logrotate 简介 logrotate是一个日志管理程序,用来把旧的日志文件删除(备份),并创建新的日志文件,这个过程称为"转储". 我们可以根据日志的大小,或者根据其使 ...

  7. logrotate测试_日志切割之Logrotate

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

  8. puppet的web管理工具foreman安装配置简明步骤

    foreman概述 Foreman是一个集成的数据中心生命周期管理工具,提供了服务开通,配置管理以及报告 功能,和Puppet Dahboard一样,Foreman也是一个Ruby on Rails程 ...

  9. Portainer -- Docker可视化管理工具的安装配置及使用

    Portainer介绍 Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容器控制台 ...

最新文章

  1. 奇葩问题解决-----解决异常情况下的黑屏
  2. Hibernate EHCache - Hibernate二级缓存
  3. Linux-kernel 网桥代码分析(一)
  4. springcloud注册中心Eureka英 [juəˈri:kə]的基本搭建
  5. latex减少图片和图片解释文字之间的距离
  6. TSX指令集中的 RTM 受限的事务内存 来实现并发无锁编程
  7. 小凡虚拟机桥接到pc步骤实施
  8. pandas处理时序数据
  9. Windows Server 2012 R2 安装 Docker
  10. 上海的211大学中计算机,上海有哪些211大学
  11. 华三(H3C)单臂路由
  12. Excel最大值和最小值的提取问题
  13. (一)TileMap使用
  14. 上海计算机5年制大专学校,上海五年一贯制大专学校有哪些
  15. 0成本开发一个外卖领劵小程序
  16. 如何写一个自动重复发消息的脚本,聪哥手把手教你(适配任何可发消息的app),亲测有效
  17. 618有哪些数码产品值得入手?盘点值得入的数码好物推荐
  18. 如果要让多台计算机共享上网,桥接-让两台电脑成功实现共享上网!.doc
  19. 新冠疫情可视化(7月11日,7月12日)
  20. 商女不知亡国恨,隔江犹吃炒腰花

热门文章

  1. 让我怎能过大年的java,让我怎能过大年
  2. 用「明道云+ChatGPT+Weaviate」挑战零代码1小时实现ChatPDF
  3. 2716 [Violet 3] 天使玩偶
  4. vue中Computed、Methods、Watch区别
  5. html中设置背景图像填充,CSS-定位背景图像,添加填充
  6. 正则校验允许输入数字、英文、下划线、点
  7. thymeleaf 遍历map
  8. InfluxDB基本使用
  9. java实现ajax同名验证_jQuery+Ajax实现用户名重名实时检测
  10. CHAP7:使用 R 编程进行数据分析