如何部署日志轮替工具logrotate?

RHEL-Like

1 理论部分

1.1 logrotate的作用

logrotate通俗点讲主要实现日志分割功能,关于详细功能如下:
– 定义日志的转存规则(根据时间或大小转存,转存几份以及旧日志删除)
– 定义转存同时压缩日志
– 定义日志的邮寄备份
– 定义日志的转存权限
– 定义空日志的转存方式

1.2 logrotate的启动

cat /etc/cron.daily/logrotate

详细如下:

#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

注:以上可见logrotate是基于crontab触发执行(按天)

1.3 logrotate的配置文件

cat /etc/logrotate.conf

详细如下:

weekly
rotate 4
create
dateext
include /etc/logrotate.d
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}
/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

注:留意include参数,故可在“/etc/logrotate.d”目录配置子配置文件

1.4 logrotate的配置文件的常用参数

1.4.1 时间参数

yearly – 按年转存日志
monthly – 按月转存日志
weekly – 按周转存日志
daily – 按日转存日志

1.4.2 日志保留的份数

rotate – 转存保留多少份日志
范例:

rotate 5

1.4.3 日志的压缩

compress – 转存的日志使用gzip压缩
delaycompress- 不压缩最近一次的日志

1.4.4 错误处理

missingok – 转存时忽略任何错误

1.4.5 空日志处理

notifempty – 不转存空日志

1.4.6 权限处理

create – 指定转存日志权限
范例:

create 644 root root

1.4.7 脚本调用

prerotate/endscript – 指定日志转存前调用脚本
postrotate/endscript – 指定日志转存后调用脚本
范例:

postrotate
/usr/bin/killall -HUP rsyslogd
endscript

1.4.8 其他参数

请参阅:
http://www.linuxcommand.org/man_pages/logrotate8.html

2 实践部分

2.1 软件包的安装

yum install -y logrotate

2.2 定位日志配置文件

ls -l /var/log/wtmp

详细显示如下:

-rw-rw-r--. 1 root utmp 46464 Feb  9 08:48 /var/log/wtmp

2.3 编辑配置文件

vim /etc/logrotate.d/wtmp

配置如下:

/var/log/wtmp {
    yearly
    rotate 5
    compress
    delaycompress
    missingok
    notifempty
    create 644 root utmp
}

注:没有就创建,配置文件名称与日志文件名称一致(方便管理)

2.4 测试配置文件

logrotate -d /etc/logrotate.d/wtmp

2.5 手动运行配置文件(可选)

logrotate -f /etc/logrotate.d/wtmp

注:参数“-f”强制进行测试,即使没有符合日志旋转的条件
==========================================================
参阅文档:
——————————
https://linux.die.net/man/8/logrotate
http://www.softpanorama.org/Utilities/logrotate.shtml
http://www.tuicool.com/articles/FfEN7zN
http://blog.csdn.net/zengjun131420/article/details/51679846
http://www.cnblogs.com/patf/p/4668847.html

没有评论

发表回复

RHEL-Like
如何配置rsyncd服务?

1 前言 一个问题,一篇文章,一出故事。 由于笔者想实现文件通过rsync自动传输,但是又不想使用o …

RHEL-Like
如何用pam_google_authenticator认证模块实现SSH 2FA?

1 前言 一个问题,一篇文章,一出故事。 笔者想开启2FA以便增强SSH服务的安全性,于是便整理此文 …

RHEL-Like
如何升级RHEL clamav杀毒?

1 前言 一个问题,一篇文章,一出故事。 笔者需要卸载旧的病毒软件,然后更新rpm包的病毒软件,于是 …