OpenResty 005logrotate日志切割介绍
logrotate是linux自带的日志切割程序,可以方便的对日志进行切割,并且执行相关命令。
一、安装
- 查看linux系统信息
cat /etc/redhat-release - 查看内核信息
uname -r - 安装
yum -y install logrotate crontabs - 显示软件包信息
rpm -qa logrotate - 主要配置文件
1 2 3
/etc/cron.daily/logrotate /etc/logrotate.conf #主配置文件 /etc/logrotate.d #配置文件目录
logrotate的配置文件是/etc/logrotate.conf,通常不需要对它进行修改。
日志文件的轮循设置在独立的配置文件中,它(们)放在/etc/logrotate.d/目录下。
随机生成一个10MB的文件
|
|
二、准备配置文件
- 如果不知道如何写配置文件,可以看/etc/logrotate.d目录下面的
- vim /etc/logrotate.d/my-cut-log
|
|
上面的模板是通用的,而配置参数则根据你的需求进行调整,不是所有的参数都是必要的。也可以通过man手册中的例子进行配置。
三、配置文件说明
配置参数 | 说明 |
---|---|
monthly | 日志文件将按月轮循。其它可用值为’daily’,‘weekly’或者’yearly’。 |
rotate 5 | 一次将存储5个归档日志。对于第六个归档,时间最久的归档将被删除。 |
compress | 在轮循任务完成后,已轮循的归档将使用gzip进行压缩。 |
delaycompress | 总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。 |
missingok | 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。 |
notifempty | 如果日志文件为空,轮循不会进行。 |
create 644 root root | 以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件。 |
postrotate/endscript | 在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd 进程将立即再次读取其配置并继续运行。 |
sharedscripts | 命令在所有日志切割完成后最后才执行,没有此参数,则每次切割完成一个文件都要执行命令 |
dateext | 使用日期扩展名 |
dateformat | 日期格式 |
四、 手动运行logrotate
logrotate可以在任何时候从命令行手动调用。
要调用为/etc/lograte.d/下配置的所有日志调用logrotate:
- logrotate /etc/logrotate.conf #指定配置文件允许
- logrotate -vf /etc/logrotate.d/log-file #指定配置文件,显示执行都详细信息
即使轮循条件没有满足,我们也可以通过使用‘-f’选项来强制logrotate轮循日志文件,‘-v’参数提供了详细的输出。
五、 Logrotate 的记录日志
logrotate自身的日志通常存放于/var/lib/logrotate/status目录。
如果处于排障目的,我们想要logrotate记录到任何指定的文件,我们可以指定像下面这样从命令行指定。
logrotate -vf -s /var/log/logrotate-status /etc/logrotate.d/log-file