开源是一种精神,分享是一种美德!

logrotate

相关命令:暂无相关命令
logrotate命令用于对系统日志进行轮转、压缩和删除,也可以将日志发送到指定邮箱。使用logrotate指令,可让你轻松管理系统所产生的记录文件。每个记录文件都可被设置成每日,每周或每月处理,也能在文件太大时立即处理。您必须自行编辑,指定配置文件,预设的配置文件存放在/etc/logrotate.conf文件中。 

常用参数:

-?或--help:在线帮助; 
-d或--debug:详细显示指令执行过程,便于排错或了解程序执行的情况; 
-f或--force :强行启动记录文件维护操作,纵使logrotate指令认为没有需要亦然; 
-s<状态文件>或--state=<状态文件>:使用指定的状态文件; 
-v或--version:显示指令执行过程; 

-usage:显示指令基本用法。


Logrotate程序是在 /etc/logrotate.conf配置的。这是一个text文档,包含许多配置选项(如下表)。可以给系统的任何日志制定配置参数。此外,这些选项还允许logrotate从其他日志文件读取和使用参数。

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


# 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 -- we'll rotate them here
/var/log/wtmp {
monthly
minsize 1M
create 0664 root utmp
rotate 1
}

# system-specific logs may be also be configured here.

Functioncompress — 用gzip压缩旋转的日志文件。
nocompress — 在不需要压缩旋转日志文件的情况下使用。
copytruncate — 用于还在向开放日志文件写信息的过程。该选择将活归档日志文件制成副本。
nocopytruncate — 把日志文件复制进备份,但该开放文件不会被裁剪。
create mode owner group — 旋转日志文件并创建允许特定组合用户的新文件。缺省是使用与原始文件一样的模式,组合用户。
nocreate — 可以防止产生新日志文件。
delaycompress — 在使用压缩选择时,旋转文件不会在下一个循环开始时被压缩。
nodelaycompress –    日志文件会在循环过程中被压缩。
errors address — 将logrotate错误邮件发送到某个地址。
ifempty — 即使在空文件时也要旋转。这是Logrotate的缺省项。
notifempty — 空文件不旋转。
mail address — 这个邮件日志文件是循环到一个地址,因此能有效从系统中清楚。
nomail    在邮件日志循环时,副本不邮寄。
olddir directory — 这个选项会将循环日志文件保持在特定目录。该目录必需与现有日志文件在同一文件系统。
noolddir — 循环的日志文件与现有文件处于相同目录。
prerotate/endscript — 结束和执行旋转任务。
postrotate/endscript — 可以在一个日志文件旋转时执行的命令。
daily — 每日旋转日志文件。
weekly — 每周旋转日志文件。
monthly — 每月旋转日志文件。
rotate count — 在删除前旋转文件的特定次数。如果计数为零,就意味着没有副本保留。而5则意味着保留5个副本。
tabootext [+] list — This directs logrotate to not rotate files with the specified extension. The default list of extensions is .rpm-orig, .rpmsave, v, and ~。
size size — 在日志文件达到一定大小时开始旋转。大小是以bytes (默认), kilobytes (sizek)或megabytes (sizem)计算。


至于logrotate对文件进行管理时的所要执行的规则,可以在/etc/logrotate.d文件夹下创建文件,logrotate会在执行的时候自动读取相应的规则,比如,我在/etc/logrotate.d/路径下新建了一个名为syslog的文件,其中的内容为: 
Shell代码  收藏代码
/log/test.log  
{  
         size 10M  
         create  
         start 10  
         rotate 4  
         compress  
         copytruncate  
}  

上面代码的意思为当文件/log/test.log的大小超过10M时就开始循环,允许logrotate创建文件,循环文件的开始为10,即文件为为test.log.10.gz,最多循环创建4个文件,即为test.log.13.gz,多于四个后开始在第一个上面循环,依次迭代。 
  
  这样在配置logrotate的规则的时候就相对非常灵活,当我需求改动,需要添加其他新的规则的时候,我就不必修改syslog文件中的规则,可以新创建一个文件,添加相应的规则即可。这种灵活的配置方式对编程来说是一大便利,对于编程来说就是更容易实现对规则的自动控制了。 

另外的一个问题,logrotate规则配置好后怎么定时去执行呢?这个就可以交给Linux中的crontab来控制了
暂无该命令例子,添加例子

评论(0)

暂无评论

评论

名字:
验证码:
获取验证码
内容: