Linux系统运维应用工具的使用和实战
作者:网络转载 发布时间:[ 2013/4/8 9:05:02 ] 推荐标签:
应用工具二:应用 logrotate 管理日志文件
你可能想保留日志文件一段时间,而不是删除或截断这些文件,以防万一需要时进行参考。通过轮换、压缩、发邮件以及删除指定的每个文件,logrotate 实用工具可以自动管理系统日志(和其它)文件。logrotate 实用程序由 /etc/logrotate.conf 文件控制,该文件用于设置默认值,可以指定要轮换的文件。通常情况下,logrotate.conf 包含一个 include 语句,指向实用程序指定的 /etc/logrotate.d 中的规范文件。以下是默认的 logrotate.conf 文件:
$ cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}
# system-specific logs may be also be configured here.
logrotate.conf 文件为常用的参数设置默认值。每当 logro-tate 读取这些参数的另一个值时,则会重置默认值。可以选择 daily(每天)、weekly(每周)或 monthly(每月)轮换文件。rotate关键字后面的数字指定要保留的被轮换日志文件数量。create 关键字会使 logrotate 创建一个新的日志文件,并与新轮换的日志文件具有相同的名称和属性。dateext 关键字导致 logrotate 使用日期作为文件扩展名。compress 关键字(默认文件中被注释掉)导致日志文件由 gzip 压缩。include 关键字为具体程序的 logrotate 规范文件指定标准 /etc/logrotate.d 目录。当使用 rpm 或基于 rpm 的实用程序安装一个程序时,rpm 把 logrotate 规范文件放在该目录中。
logrotate.conf 中的后指令集会处理 /var/log/wtmp 和 /var/log/btmp 日志文件(wtmp 保存登录记录,而 btmp 保存失败的登录尝试记录);可以查看这些使用 who 的文件。missingok 关键字只覆盖这个文件的隐含默认值 nomissingok,此关键字导致 logrotate 继续运行,即使日志文件丢失也不会发出错误消息。关键字 monthly 只覆盖这个文件的默认值 weekly。create 关键字后面紧跟为新文件建立权限、所有者和组的参数。后的 rotate则建立应保留的轮换日志文件。
/etc/logrotate.d/httpd 文件是实用程序 logrotate 规格文件的一个例子:
$ cat /etc/logrotate.d/httpd
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
delaycompress
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
这个文件由 httpd 软件包安装脚本安装,通过 logrotate.conf 中的 include 语句放入 /etc/logrotate.d 中,并使用 /var/log/httpd 中文件名以 log (*log) 结尾的每个文件。如果日志文件是空的,notifempty 关键字导致 logrotate 不轮换日志文件,而是重写空的日志文件。sharedscripts 关键字导致 logrotate 仅执行一次 prerotate 和 postrotate 节的命令,而不是为每个轮换的日志文件执行一次。delaycompress 关键字会导致 logrotate 延迟一个周期压缩。copytruncate 关键字没有出现在这个例子中,它会导致 logrotate 复制后立即截断原来的日志文件,这个关键字对于无法关闭并重新打开日志文件的程序非常有用,因为这些程序可能会在原始文件已被移动的情况下,继续写入原始文件。在轮换开始前,logrotate 实用工具会执行 prerotate 和 endscript 之间的命令。同样,轮换完成后,会执行 postrotate 和 endscript 之间的命令。
logrotate 实用工具使用很多关键字,其中许多带有参数,而且有其它作用。详细信息请参阅 logrotate 手册页。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11