配置 logrotate 的终极指导

一般来说,日志是任何故障排除过程中非常重要的一部分,但这些日志会随着时间增长。在这种情况下,我们需要手动执行日志清理以回收空间,这是一件繁琐的管理任务。为了解决这个问题,我们可以在 Linux 中配置 logrotate 程序,它可以自动执行日志文件的轮换、压缩、删除和用邮件发出。

我们可以配置 logrotate 程序,以便每个日志文件可以在每天、每周、每月或当它变得太大时处理。

logrotate 是如何工作的

默认情况下,logrotate 命令作为放在 /etc/cron.daily 中的 cron 任务,每天运行一次,它会帮助你设置一个策略,其中超过某个时间或大小的日志文件被轮换。

命令: /usr/sbin/logrotate

配置文件: /etc/logrotate.conf

这是 logrotate 的主配置文件。logrotate 还在 /etc/logrotate.d/ 中存储了特定服务的配置。确保下面的那行包含在 /etc/logrotate.conf 中,以读取特定服务日志配置。


  1. include /etc/logrotate.d`

logrotate 历史: /var/lib/logrotate.status

重要的 logrotate 选项:


  1. compress --> 压缩日志文件的所有非当前版本
  2. daily,weekly,monthly --> 按指定计划轮换日志文件
  3. delaycompress --> 压缩所有版本,除了当前和下一个最近的
  4. endscript --> 标记 prerotate 或 postrotate 脚本的结束
  5. errors "emailid" --> 给指定邮箱发送错误通知
  6. missingok --> 如果日志文件丢失,不要显示错误
  7. notifempty --> 如果日志文件为空,则不轮换日志文件
  8. olddir "dir" --> 指定日志文件的旧版本放在 “dir” 中
  9. postrotate --> 引入一个在日志被轮换后执行的脚本
  10. prerotate --> 引入一个在日志被轮换前执行的脚本
  11. rotate 'n' --> 在轮换方案中包含日志的 n 个版本
  12. sharedscripts --> 对于整个日志组只运行一次脚本
  13. size='logsize' --> 在日志大小大于 logsize(例如 100K,4M)时轮换

配置

让我们为我们自己的示例日志文件 /tmp/sample_output.log 配置 logrotate。

第一步:在 /etc/logrotate.conf 中添加以下行。


  1. /tmp/sample_output.log {
  2. size 1k
  3. create 700 root root
  4. rotate 4
  5. compress
  6. }

在上面的配置文件中:

  • size 1k - logrotate 仅在文件大小等于(或大于)此大小时运行。
  • create - 轮换原始文件并创建具有指定权限、用户和组的新文件。
  • rotate - 限制日志文件轮转的数量。因此,这将只保留最近的 4 个轮转的日志文件。
  • compress - 这将压缩文件。

第二步:通常,你需要等待一天才能等到 logrotate 由 /etc/cron.daily 执行。除此之外,你可以用下面的命令在命令行中运行:


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

在执行 logrotate 命令之前的输出:


  1. [root@rhel1 tmp]# ls -l /tmp/
  2. total 28
  3. -rw-------. 1 root root 20000 Jan 1 05:23 sample_output.log

在执行 logrotate 之后的输出:


  1. [root@rhel1 tmp]# ls -l /tmp
  2. total 12
  3. -rwx------. 1 root root 0 Jan 1 05:24 sample_output.log
  4. -rw-------. 1 root root 599 Jan 1 05:24 sample_output.log-20170101.gz
  5. [root@rhel1 tmp]#

这样就能确认 logrotate 成功实现了。

原文发布时间为:2017-02-22

本文来自合作伙伴“Linux中国”

时间: 2024-09-17 03:39:30

配置 logrotate 的终极指导的相关文章

创建一个移动应用的终极指导

本文讲的是创建一个移动应用的终极指导, 大多数现代人都难以想象有一天他们拿着智能手机却只用来打电话的情境.当今移动设备的迅猛发展早已超出了当初发明它们的目的--打电话和发短信.现今,即便是最普通的手机也提供了一个承载着众多日常应用的平台,这些应用使人们的生活更加愉悦.有轻便也有庞大,有资讯也有娱乐,有极简也有拟物,有提升自我的也有仅供消遣的,能够满足不同用户的不同需求,并使他们的生活更加美好.大量应用的盛行使得用户仅靠一部手机就可以完成众多工作.设个明天的闹铃,算算下周的预算,又或者给老妈发个自

JDK配置环境变量终极篇

楼楼最近在学习Android开发,学习Android肯定要用到JAVA语言,我身边的人不管是学JAVA开发,还是Android开发等等其他开发都要用到JDK,就拿Android来说吧,不管你是用Android studio还是eclipse开发Android程序,都要用到JDK,对于没有经验的人来说安装JDK着实要费很大的劲,有可能搞到最后也是失败而告终,这是因为JDK需要配置环境变量,很多人都是因为这个而导致JDK安装了却不能用.今天我就来把我自己总结的经验来跟大家分享,让大家可以在短短几分钟

Linux下Tomcat catalina.out自动归档,以及logrotate 配置详解

Linux下Tomcat catalina.out自动归档 如果 catalina.out 日志达到 2GB 大小的时候,Tomcat 因为缓存问题,便没有办法继续输出日志了.  为了避免这种情况,你需要及时对 catalina.out  进行归档.  实际上 Tomcat 自身也会对日志内容进行归档,但是归档后,Tomcat 不会清理 catalina.out 的内容,这将会导致 catalina.out 越来越大.  下面的方法能够使用在 linux/unix 的机器上.  如果我们期望每天

响应MS08-067 Windows系统紧急安全配置指南

本配置手册不是全面的windows系统安全配置手册,只是指导windows用户,通过简易的.且不需要付 任何费用的方法来避免受到主流攻击影响.本手册在每次出现重大漏洞时将做出修订.目前手册中的内容 包括可有效对抗在2008年10月24出现的RPC漏洞(MS08-067)影响. 最新漏洞情况通报 本报告的修订针对2008年10月24出现的RPC漏洞(MS08-067)作出,这是一个针对139.445端口的RPC服 务进行攻击的漏洞.可以直接获取系统控制权. 根据MS的消息该攻击无法穿透DEP保护,

在Linux系统中使用logrotate来管理日志文件的方法

  日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题.除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事. logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循).压缩以及删除旧的日志文件.例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月的日志.配置完后,logrotate的运作完全自动化,不必进行任

ASP.NET Core的配置(2):配置模型详解

在上面一章我们以实例演示的方式介绍了几种读取配置的几种方式,其中涉及到三个重要的对象,它们分别是承载结构化配置信息的Configuration,提供原始配置源数据的ConfigurationProvider,以及作为"中间人"的ConfigurationBuilder.接下来我们将会对由这三个核心对象组成的配置模型进行详细介绍,不过在此之前我们有必要来认识配置信息在不同载体中所体现出来的三种结构. 目录 一.配置的三种结构 逻辑结构 原始结构 物理结构 结构转换 二.Configura

RedHat Linux服务器安全配置细节

1.概述 Linux服务器版本:RedHat Linux AS 2.1 对于开放式的操作系统---Linux,系统的安全设定包括系统服务最小化.限制远程存取.隐藏重要资料.修补安全漏洞.采用安全工具以及经常性的安全检查等. 本文主要从用户设置.如何开放服务.系统优化等方面进行系统的安全配置,以到达使Linux服务器更安全.稳定. 2.用户管理 在Linux系统中,用户帐号是用户的身份标志,它由用户名和用户口令组成. 系统将输入的用户名存放在/etc/passwd文件中,而将输入的口令以加密的形式

use logrotate manage log file

logrotate一般用于管理日志文件, 例如 :  [root@db-192-168-173-42 tmp]# ll /var/log/messages* -rw------- 1 root root 599922 Jan  2 16:06 /var/log/messages -rw------- 1 root root    138 Dec 27 19:20 /var/log/messages.1 -rw------- 1 root root     58 Dec 14 04:02 /var

logrotate linux 系统日志备份压缩工具

logrotate 是作为linux系统日志的管理工具存在.它可以轮换.压缩.邮件系统日志文件. 默认的 logrotate 被加入 cron 的 /etc/cron.daily 中作为每日任务执行. /etc/logrotate.conf 为其默认配置文件指定每个日志文件的默认规则. /etc/logrotate.d/* 为 /etc/logrotate.conf 默认包含的目录,其中文件也会被 logrotate 读取.指明每个日志文件的特定规则. /var/lib/logrotate.st