2024年10月Linux系统中Logrotate工具用法汇总

发布时间:

  ⑴Linux系统操作中,Logrotate是一款日志管理工具,可对Linux日志进行处理,在使用前,需要对Logrotate工具进行配置,下面小编就给大家介绍下Linux中Logrotate工具的用法,一起来了解下吧。

  ⑵Logrotate是基于CRON来运行的,其脚本是/etc/cron.daily/logrotate

  ⑶#!/bin/sh

  ⑷/usr/sbin/logrotate /etc/logrotate.conf

  ⑸EXITVALUE=$?

  ⑹if [ $EXITVALUE != ]; then

  ⑺/usr/bin/logger -t logrotate “ALERT exited abnormally with [$EXITVALUE]”

  ⑻/etc/cron.daily目录所有脚本运行频率是由CRON通过/etc/crontab控制,

  ⑼有两种运行方式: 直接执行单个命令; 目录规划,下面仅列举目录规划配置

  ⑽SHELL=/bin/bash

  ⑾PATH=/sbin:/bin:/usr/sbin:/usr/bin

  ⑿MAILTO=root

  ⒀# run-parts

  ⒁*/ * * * * root run-parts /etc/cron.min

  ⒂ * * * * root run-parts /etc/cron.hourly

  ⒃ * * * root run-parts /etc/cron.daily

  ⒄ * * root run-parts /etc/cron.weekly

  ⒅ * * root run-parts /etc/cron.monthly

  ⒆/etc/logrotate.conf 全局默认文件

  ⒇/etc/logrotate.d/ 目录,下属文件通过include纳入前者

  ⒈weekly 《==默认一周执行一次 rotate 工作

  ⒉rotate 《==保留多少个日志文件。默认保留四个。

  ⒊create 《==创建新的文件。因为日志被改名,因此要创建一个新的来继续存储之前的日志

  ⒋dateext 《==文件后缀是日期格式,也就是切割后文件是:xxx.log-,如果注释掉,切割出来是按数字递增,即前面说的 xxx.log-

  ⒌press 《==是否压缩日志。

  ⒍include /etc/logrotate.d # 将 /etc/logrotate.d/ 目录中的所有文件都加载进来

  ⒎/var/log/wtmp { 《==仅针对 /var/log/wtmp 所设定的参数

  ⒏monthly 《==每月一次切割,取代默认的一周

  ⒐minsize M 《==文件大小超过 M 后才会切割

  ⒑create root utmp 《==指定新建的日志文件权限以及所属用户和组

  ⒒rotate 《==只保留一个日志。

  ⒓通过include加载的文件示例如下

  ⒔[rootwww ~]# vi /etc/logrotate.d/syslog

  ⒕/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron

  ⒖sharedscripts

  ⒗prerotate

  ⒘/usr/bin/chattr -a /var/log/messages

  ⒙endscript

  ⒚sharedscripts

  ⒛postrotate

  ①/bin/kill -HUP `cat /var/run/syslogd.pid 》 /dev/null` 》 /dev/null || true

  ②/bin/kill -HUP `cat /var/run/rsyslogd.pid 》 /dev/null` 》 /dev/null || true

  ③/usr/bin/chattr +a /var/log/messages

  ④endscript

  ⑤日志文件: 被处理的日志绝对路径。使用空格符分隔多个文件名;

  ⑥可调用外部指令来进行额外的命令,这个设定需与 sharedscripts 。。。。 endscript 设定合用才行。命令介绍:

  ⑦prerotate:在启动 logrotate 之前进行的指令,例如修改文件的属性等动作;

  ⑧postrotate:在做完 logrotate 之后启动的指令,例如重新启动 (kill -HUP 某个服务;

  ⑨那么 /etc/logrotate.d/syslog 内设定的六个文件的切割功能就变成了:

  ⑩.该设定只对 /var/log/ 内的 messages, secure, maillog, spooler, boot.log, cron 有效;

  Ⅰ.日志切割每周一次、保留四个、且切割下来的日志文件不进行压缩(未更改预设值;

  Ⅱ.切割完毕后 (postrotate 取得 syslog 的 PID 后,以 kill -HUP 重新启动 syslogd

  Ⅲ切割案例:Nginx

  Ⅳ============================

  Ⅴ在 /etc/logrotate.d 新建 nginx

  Ⅵ/usr/local/nginx/logs/*.log {

  Ⅶpress

  Ⅷsharedscripts

  Ⅸpostrotate

  Ⅹif [ -f /usr/local/nginx/logs/nginx.pid ]; then

  ㈠kill -USR `cat /usr/local/nginx/logs/nginx.pid`

  ㈡endscript

  ㈢上面就是Linux中Logrotate工具的用法介绍了,本文介绍了Logrotate工具的运行原理和Logrotate文件的配置,如果你要管理Linux系统日志,可选择使用Logrotate日志管理工具。