• logrotate: 管理日志文件


    Erik Troan提供了一种优秀的工具logrotate,它实现了多种多样的日志管理策略,而且在我们举例的所有发行版本上都是标准应用。

    logrotate的配置文件由一系列规范组成,它们说明了要管理的日志文件组。出现在日志文件规范之外的选项(诸如下面例子中的errors、rotate和weekly)适用于后面所有的规范,它们可以在特定日志文件的规范内被覆盖,也可以在文件的后面重新指定,修改默认值。

    下面是一个有点儿故意人为的例子,它设定了几种不同的日志文件:

    1

    这一配置每周轮换一次/var/log/messages文件。它保持了这个文件的5个版本,并且在每次重置文件的时候通知syslogd。Samba的日志文件(这样的文件可能有好几个)也每周轮换一次,但不是移到一边后开始一个新的,而是复制以后截短。只有在轮换了所有的日志文件之后,才向守护进程Samba发HUP信号。

    表10.2列出了logrotate.conf最有用的选项。

    表10.2 logrotate的选项

    选 项

    含 义

    compress

    压缩日志文件的所有非当前版本

    daily, weekly, monthly

    以指定的时间安排来轮换日志文件

    delaycompress

    压缩除了当前和最近之外的所有其他版本

    endscript

    标记prerotate或者postrotate脚本结束

    errors emailaddr

    向指定的emailaddr发送出错通知邮件

    missingok

    如果日志不存在,不会发出抱怨

    notifempty

    如果日志为空,则不轮换它

    olddir dir

    指定要放入dir里的日志文件老版本

    postrotate

    引入在轮换过日志之后要运行的脚本

    prerotate

    引入在进行任何改动之前运行的脚本

    rotate n

    在轮换方案中包括n个版本的日志

    sharedscripts

    只为整个日志组运行一次的脚本

    size=logsize

    如果日志文件大于logsize(例如,100K,4M)才轮换

    logrotate一般每天由cron运行一次。它的标准配置文件是/etc/logrotate.conf,但是在logrotate的命令行上一次可以出现多个配置文件(或者包含配置文件的目录)。这一特性被我们所举的发行版本充分利用,它们规定/etc/logrotate.d目录是保存logrotate配置文件的标准位置。懂得logrotate的软件包(这种软件有很多)能把执行日志管理指令作为它们安装过程的一部分,这大大地简化了管理工作。

    除了logrotate之外,Debian和Ubuntu还提供了一种更简单的程序,它叫做savelog,能够管理单个文件的轮转工作。它比logrotate更直接,不用(或者不需要用)配置文件。有些软件包更愿意使用它们自己的savelog配置,而不用logrotate。

  • 相关阅读:
    cookie和session的区别和用法
    JavaScript深浅拷贝
    前端知识
    typescript -- ts
    vue笔记精华部分
    宜人贷项目里-----正则匹配input输入月份规则
    PHP-Socket-阻塞与非阻塞,同步与异步概念的理解
    PHP socket客户端长连接
    PHP exec/system启动windows应用程序,执行.bat批处理,执行cmd命令
    查看局域网内所有ip
  • 原文地址:https://www.cnblogs.com/chjbbs/p/6428851.html
Copyright © 2020-2023  润新知