1 理论部分
1.1 logrotate的作用
logrotate通俗点讲主要实现日志分割功能,关于详细功能如下:
- 定义日志的转存规则(根据时间或大小转存,转存几份以及旧日志删除)
- 定义转存同时压缩日志
- 定义日志的邮寄备份
- 定义日志的转存权限
- 定义空日志的转存方式
1.2 logrotate的启动
1
<code>cat</code> <code>/etc/cron</code><code>.daily</code><code>/logrotate</code>
详细如下:
2
3
4
5
6
7
8
<code>#!/bin/sh</code>
<code>/usr/sbin/logrotate</code> <code>/etc/logrotate</code><code>.conf</code>
<code>EXITVALUE=$?</code>
<code>if</code> <code>[ $EXITVALUE != 0 ]; </code><code>then</code>
<code> </code><code>/usr/bin/logger</code> <code>-t logrotate </code><code>"ALERT exited abnormally with [$EXITVALUE]"</code>
<code>fi</code>
<code>exit</code> <code>0</code>
注:以上可见logrotate是基于crontab触发执行(按天)
1.3 logrotate的配置文件
<code>cat</code> <code>/etc/logrotate</code><code>.conf</code>
9
10
11
12
13
14
15
16
17
<code>weekly</code>
<code>rotate 4</code>
<code>create</code>
<code>dateext</code>
<code>include </code><code>/etc/logrotate</code><code>.d</code>
<code>/var/log/wtmp</code> <code>{</code>
<code> </code><code>monthly</code>
<code> </code><code>create 0664 root utmp</code>
<code> </code><code>minsize 1M</code>
<code> </code><code>rotate 1</code>
<code>}</code>
<code>/var/log/btmp</code> <code>{</code>
<code> </code><code>missingok</code>
<code> </code><code>create 0600 root utmp</code>
注:留意include参数,故可在“/etc/logrotate.d”目录配置子配置文件
1.4 logrotate的配置文件的常用参数
1.4.1 时间参数
yearly - 按年转存日志
monthly - 按月转存日志
weekly - 按周转存日志
daily - 按日转存日志
1.4.2 日志保留的份数
rotate - 转存保留多少份日志
范例:
<code>rotate 5</code>
1.4.3 日志的压缩
compress - 转存的日志使用gzip压缩
delaycompress- 不压缩最近一次的日志
1.4.4 错误处理
missingok - 转存时忽略任何错误
1.4.5 空日志处理
notifempty - 不转存空日志
1.4.6 权限处理
create - 指定转存日志权限
<code>create 644 root root</code>
1.4.7 脚本调用
prerotate/endscript - 指定日志转存前调用脚本
postrotate/endscript - 指定日志转存后调用脚本
<code>postrotate</code>
<code>/usr/bin/killall</code> <code>-HUP rsyslogd</code>
<code>endscript</code>
1.4.7 其他参数
请参阅:
<a href="http://www.linuxcommand.org/man_pages/logrotate8.html" target="_blank">http://www.linuxcommand.org/man_pages/logrotate8.html</a>
2 实践部分
2.1 软件包的安装
<code>yum </code><code>install</code> <code>-y logrotate</code>
2.2 定位日志配置文件
<code>ls</code> <code>-l </code><code>/var/log/wtmp</code>
详细显示如下:
<code>-rw-rw-r--. 1 root utmp 46464 Feb 9 08:48 </code><code>/var/log/wtmp</code>
2.3 编辑配置文件
<code>vim </code><code>/etc/logrotate</code><code>.d</code><code>/wtmp</code>
配置如下:
<code> </code><code>yearly</code>
<code> </code><code>rotate 5</code>
<code> </code><code>compress</code>
<code> </code><code>delaycompress</code>
<code> </code><code>notifempty</code>
<code> </code><code>create 644 root utmp</code>
注:没有就创建,配置文件名称与日志文件名称一致(方便管理)
2.4 测试配置文件
<code>logrotate -d </code><code>/etc/logrotate</code><code>.d</code><code>/wtmp</code>
2.5 手动运行配置文件(可选)
<code>logrotate </code><code>/etc/logrotate</code><code>.conf</code>
或
<code>logrotate </code><code>/etc/logrotate</code><code>.d</code><code>/wtmp</code>
==========================================================
本文转自 tanzhenchao 51CTO博客,原文链接:http://blog.51cto.com/cmdschool/1896025,如需转载请自行联系原作者