博客
关于我
Linux logrotate 命令教程日志分割
阅读量:793 次
发布时间:2023-02-01

本文共 1770 字,大约阅读时间需要 5 分钟。

Logrotate 这个工具是用来管理和分割日志文件的,虽然在一些系统中会自动生成配置文件,但了解它的运行原理和常用参数对于有效管理日志文件至关重要。

Logrotate 的工作原理

Logrotate 是一种自动化解决方案,用于在设定的频率下将期日志文件分割并压缩。其工作流程一般是:

  • 运行计划任务:大多数系统通过 cron 表示任务运行logrotate,通常是每天一次。这个脚本的位置根据发行版有所不同,比如在 Debian 系统中为 /etc/cron.daily/logrotate,在 Gentoo 中为 /etc/cron.daily/logrotate.cron

  • 读取配置文件:logrotate 在运行时读取主配置文件 /etc/logrotate.conf 以获取默认的设置,并结合每个日志应用的自定义配置文件(位于 /etc/logrotate.d/ 目录下)。

  • 分割日志文件:根据配置文件的指令,logrotate 会选择指定的日志文件或目录,按时间或大小分割日志文件并进行压缩。

  • 主配置文件

    /etc/logrotate.conf 是 logrotate 的主要配置文件,包含了大多数系统的默认设置。文件内容包括参数注释和一些常用的设置示例:

    • include /etc/logrotate.d:指定了各软件配置文件的位置。

    • 可以在其中添加自定义参数,如指定日志保留多少天或星期等。

    自定义配置文件

    /etc/logrotate.d/ 目录下存储了各个应用程序的日志分割配置文件。例如,PHP-FPM 的配置文件如下:

    /var/log/php5-fpm.log {    rotate 12    weekly    missingok    notifempty    compress    delaycompress    postrotate /usr/lib/php5/php5-fpm-reopenlogs    endscript}

    其中,rotate 12 指定保留12个日志文件;weekly 表示每周分割一次日志;compress 表明对日志进行 gzip 压缩。

    常用配置参数

    1. 分割数量

    rotate n:指定需要保留多少个日志版本,当分割执行时最旧的文件将被删除。

    2. 分割频度

    daily:每天分割一次日志。

    weekly:每周分割一次。

    monthly:每月分割一次。

    yearly:每年分割一次。

    如果没有设置 dailyweekly 等参数,则 logrotate 会在默认运行时分割日志。

    3. 文件大小

    size 100k:大文件达到 100KB 后分割。

    size 100M:大文件达到 100MB 后分割。

    size 100G:大文件达到 100GB 后分割(注意此大小可能性能影响大)。

    文件大小的分割优先级高于定期分割。

    4. 压缩

    compress:对日志文件进行 gzip 压缩。

    nocompress:不对日志文件进行压缩。

    delaycompress:在下次分割时再进行压缩。

    5. 后处理脚本

    postrotate脚本:在分割后执行的脚本命令,用于重启服务或其他操作。

    6. 共享脚本

    sharedscripts:确保在运行脚本时,只有当存在多个日志文件需要分割时才执行。因此,避免重复运行脚本。

    配置实例

    为了根据需要分割特定日志文件,可以在配置文件中指定路径或使用通配符。

    /var/foo/*.log /var/bar/log.txt {    rotate 14    daily    compress    delaycompress    sharedscripts    postrotate /usr/sbin/apachectl graceful >> /dev/null    endscript}

    注意事项

    • 覆盖默认设置:应用配置文件可以覆盖主配置文件中的一些参数。

    • 服务重启:确保在执行 postrotate 脚本时不影响系统稳定。

    • 使用日志轮转:结合 logrotate 和 logrotate.conf 来有效管理日志文件,避免占用过多磁盘空间。

    通过上述调整,logrotate 可以更好地满足不同应用和环境的需求。

    转载地址:http://pcwfk.baihongyu.com/

    你可能感兴趣的文章
    leetcode题解56-合并区间
    查看>>
    leetcode题解66-加一
    查看>>
    leetcode题解70-爬楼梯
    查看>>
    leetcode题解72-编辑距离
    查看>>
    leetcode题解75-颜色分类
    查看>>
    leetcode题解767-重构字符串
    查看>>
    leetcode题解77-子集
    查看>>
    leetcode题解77-组合
    查看>>
    leetcode题解8-盛最多水的容器
    查看>>
    leetcode题解976-三角形的最大周长
    查看>>
    leetcode题解98-验证二叉搜索树
    查看>>
    LeetCode题解【打家劫舍】(中等难度)
    查看>>
    Leetcode题解(二)
    查看>>
    left join on、where后面的条件的区别
    查看>>
    left join right inner join 区别
    查看>>
    leftjoin多个on条件_MySQL:left join 避坑指南
    查看>>
    legend2---开发日志3(thinkphp的入口目录是public的体现是什么)
    查看>>
    legoblock秀上限
    查看>>
    LeNet介绍-ChatGPT4o作答
    查看>>
    LeNet剪枝
    查看>>