2

/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 表示上次旋转的 ssh 在“/var/log/ssh.log”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

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

4

1 回答 1

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 将忽略此处daily所述的、weeklymonthlyyearly选项

  • 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每天都会检查日志的大小,并在必要时执行轮换。

于 2013-06-21T08:18:20.083 回答