需要帮助理解logrotate行为

时间:2013-01-04 10:23:21

标签: file logrotate

/etc/logrotate.conf说rotate logs "weekly"

/etc/logrotate.d/ssh说

/var/log/ssh.log {
compress
dateext
maxage 120
rotate 99
missingok
notifempty
size +4096k
create 640 root p4admin
sharedscripts
postrotate
/etc/init.d/syslog reload
endscript
}

/var/lib/logrotate.status说最后一次在“/var/log/ssh.log”上旋转了ssh 2013-1-4

但上述内容与我们在文件中看到的数据不符......

-rw-r----- 1 root user 201M Jan 4 09:47 /var/log/ssh.log
-rw-r----- 1 root user 65M Oct 19 04:02 /var/log/ssh.log-20121019.gz
-rw-r----- 1 root user 64M Nov 28 04:02 /var/log/ssh.log-20121128.gz
-rw-r----- 1 root user 63M Oct 23 04:02 /var/log/ssh.log-20121023.gz

任何想法,我错过了什么?

1 个答案:

答案 0 :(得分:1)

    您的weekly中的
  • /etc/logrotate.conf表示如果未在本地覆盖此选项,则每周都会轮换所有日志文件。

    手册说:

    Each configuration file can set global options (local definitions over-
    ride global ones, and later  definitions  override  earlier  ones)  and
    specify  logfiles  to  rotate.
    
  • 如果使用了size选项,则logrotate将忽略所述的dailyweeklymonthlyyearly选项{{ 3}}

  • 每天执行
  • logrotate 以检查大小等标准。如果适用,日志会同时轮换。

    手册说:

    Normally, logrotate is run as a daily cron job.  It will not  modify  a
    log  multiple  times  in  one  day unless the criterion for that log is
    based on the log's size and logrotate is being run multiple times  each
    day, or unless the -f or --force option is used.
    

因此, logrotate 每天检查日志的大小,并在必要时执行轮换。