最近在看日志管理的资料,发现网上很多朋友做日志分割很多情况是用脚本+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. python基础练习(一)
  2. 抖音开放平台 php-sdk 注意事项
  3. 第1章 认识jQuery
  4. WCF Chat获奖人的奖品展示
  5. P1010 幂次方 P1022 计算器的改良
  6. 用9种办法解决 for 循环取 i
  7. 【莫队】【P3901】 数列找不同
  8. 经典公司小型局域网服务器架设方案
  9. java自己写不出来_java学习中,能看懂代码,但是自己写不出来怎么处理?
  10. Memcache:set()
  11. highchart 曲线图
  12. FPGA 独立按键消抖
  13. 云钻还在吗 苏宁怎么解除实名认证_苏宁怎么撤销实名认证
  14. Java 压缩ZIP包后 压缩包内文件名乱码问题解决
  15. Week 8 CSP M2 HRZ学英语
  16. Python学习week3
  17. 蘑菇街的开源IM:TeamTalk
  18. android 7 audio架构,GitHub - zozo825117/ble_audio_android: android audio框架
  19. eDP vs MIPI DSI区别
  20. First part of my Spring posts is refreshed

热门文章

  1. 引自天天安全网 ——※ 中华民族传统文化精髓___二十四孝 ※
  2. javascript 改变 HTML 元素 element.innerHTML、.attribute、.setAttribute(attribute, value)、.style.property
  3. SpringBoot+MyBatis 基于xml实现多表查询的两种方式
  4. C#教程9:C#方法(Methods)
  5. 短信群发有字数限制吗?看完这篇文章,你就知道了!
  6. M-DAO开辟区块链全新战场,或成DAO赛道龙头
  7. 不被多数人知道但却超好的东东····生活小常识
  8. H.265视频编码与技术全析
  9. Ubuntu系统下的shell 命令
  10. [导入][幻想情侣][2008热播韩剧][全16集+OST][韩语中字]