以上内容简单解释:, J; X' u9 z* v$ R, V
由于日志文件需要保存3个月,且平均每天生成5个日志文件,设置最多保留512个,保留时间100天。
& r4 x2 M/ k3 \1 S 文件后缀编号从1000开始,比从1开始在排序上要好看。, K, e* W e- ~# s$ J
文件超过1500M的时候轮转。) y3 o: W& m7 M, h) l. j* d
为了减少存储空间占用,轮转后的日志文件需要压缩,但不是轮转后马上压缩,而是轮转下一个的时候,再压缩,以防 syslog 继续写入当前文件时候丢失数据。
/ m1 ]# `: F5 Z$ G6 J0 A4 y- F 经过以上设置,感觉可以,谁知道使用几天,发现还有问题。
3 `; Y4 g; h5 I% s0 x0 R6 K0 G0 x 6、再次解决文件超大问题! E' S( F4 D( X1 m" p
firewall.log 文件依然是2G多,没有按照设定达到1500M的时候轮转,究竟为什么?仔细看 man logrotate ,呵呵,原来如此,logrotate 每天运行一次,等它运行的时候,firewall.log 早就达到2G了。怎么办,让它每小时运行一次试试看,把 /etc/cron.daily/logtotate 文件拷贝到 /etc/cron.hourly 中一份。效果不错,看来问题解决了。
: s) w# Q' j8 W$ B' ^, ^) w% E 7、解决日志文件不到1500M就轮转、且日志文件名没有按定义规则生成问题
' d f8 @0 ?+ d8 f/ a: K 经过若干天运行,发现个小小问题。若干文件不到设置的1500M就轮转了,而且文件名没有按定义方式生成,而是原始的 firewall.log.0 方式,但是它们都有共性,都是早上 6:47 生成的。让我想想,肯定是 cron 中 sysklogd 脚本搞的鬼。进入 /etc 中的各个 cron 子目录中,把下面这句或者类似的) s1 P# A6 \: N8 z+ U
logs=$(syslogd-listfiles)
- D1 i' J- s) O% b. c" [; O 加上 -s firewall.log 参数,改为
! J7 A2 ]$ [9 O logs=$(syslogd-listfiles -s firewall.log)- r, g) P, A# S# V B5 a; d) n
让日志服务不再处理 firewall.log 日志。
/ y/ O( }6 `7 y 8、解决其它问题- r! [3 I/ ]/ a* k0 Y }& h
暂时没有。 |