使用Logrotate管理日志

  • 目前搬瓦工IP被封非常多,建议使用Vultr,充5刀美5刀,按小时计费,IP随时换---点击注册送5刀
  • Linux使用某些软件的时候会产生日志文件,而这些软件本身对日志不进行分割或者压缩处理,久而久之会导致日志文件异常巨大,影响机器性能,配置不高的机器上尤为严重。而logrotate就是管理这些日志文件的神器。

    Logrotate功能

    logrotate会周期性的读,压缩,备份,创建新的日志文件。你想对日志文件做的操作,它基本上可以做到。

    • 防止单个日志文件过于庞大

    • 删除旧的日志文件,以防旧日志文件填满你的磁盘。

    • 对单个日志文件或者某个目录下的文件按时间/大小进行切割,压缩操作;指定日志保存数量;还可以在切割之后运行自定义命令。

    许多Linux软件都已经内置了logrotate了,例如httpd默认就使用logrotated来帮你管理日志文件。

    httpd logrotate

    Logrotate配置

    1.首先看logrotate软件包的内容

    logrotate包目录

    一般第三方软件包的日志文件管理都放在/etc/logrotate.d目录下。

    httpd

    [root@250 nginx]# cat /etc/logrotate.d/httpd/var/log/httpd/*log {
    daily
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
    /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
    endscript
    }

    这份配置会处理/var/log/httpd/目录下后缀为log的文件。

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

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

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

    • sharedscripts: 在所有的日志文件都轮询之后运行postrotate脚本,如果没设置默认会在每个匹配的文件轮询之后运行一次postrotate脚本。

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

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

    • postrotate/endscript: 在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd 进程将立即再次读取其配置并继续运行。

    这里解释仅做参考,logrotate中的每个参数可单独进行搜索,明确具体的含义,man手册中也有详细说明。

    未经允许不得转载:国外便宜VPS » 使用Logrotate管理日志

    赞 (0) 打赏

    觉得文章有用就打赏一下文章作者

    支付宝扫一扫打赏

    微信扫一扫打赏