总结:

logrotate java日志切割_后缀

logrotate java日志切割_配置文件_02

 

 

为什么要做日志切割?

       在目录下/data/logs/ 里面有很多访问日志。

       用什么查看相当大存储量的访问日志呢?  cat ?    vi  ?    less?  tail?  

        cat 会不停刷,vi 打开估计都要几分钟。

       也要避免日志把磁盘写满~

       当日志文件十分大时,会对查看日志带来极大麻烦,因此需要分割日志。通常按时间来切分成不同的日志。

 

有一个日志切割的软件  logrotate

logrotate java日志切割_配置文件_03

 

cat 一下  logrotate软件的配置文件

logrotate java日志切割_logrotate java日志切割_04

weekly   表示按周切割

rotate  4 

create   旧的文件改名生产一个新的文件

dateext 

compress   是否要压缩(这里#注释了表示不要压缩)

include  包含了 指定文件夹下的子配置文件

 

/var/log/wtmp { .....} 表示针对放在wtmp这个文件夹的文件的一些配置

monthly  

create  0664  root   utmp  ——  创建新文件的  权限   属主  属组

minsize  1M 

rotate  1 

logrotate java日志切割_logrotate java日志切割_05

 

针对btmp文件夹的内的规则

missingok      忽略错误

logrotate java日志切割_后缀_06

 

我们可以在这里定义一些nginx日志文件的规则,来方便去切割这个日志

其实yum安装的nginx情况下,在 /etc/logrotate.d 已经有一些nginx日志切割的策略了。

logrotate java日志切割_后缀_07

daily                     每天

missingok           忽略错误

rotate      52        保留52个

compress           压缩

delaycompress        延迟压缩(这里延后一天压缩,比如今天才开始压缩前天的日志)

notifempty                忽略空文件,空文件不切割

create 640 nginx adm   创建回滚文件的权限   属主  属组  

 

 

if XXX 是当 /var/XXX文件存在的时候,就执行下面的KILL命令。这个目的是让nginx重新载入配置文件,这样可以生成新的日志。比如说 access.log 新建成access.log.1以后,如果没有重新建access.log  那么服务将无法写入文件。

logrotate java日志切割_配置文件_08

 

 

看一下nginx自带的log文件目录

logrotate java日志切割_后缀_09

 

这里因为把路径给改了,其实是可以写成2部分

logrotate java日志切割_配置文件_10

 

怎么写成2部分呢?

logrotate java日志切割_后缀_11

logrotate java日志切割_logrotate java日志切割_12

 

 

执行新的日志分割

logrotate  -v

-v 是为了可视化,知道执行了哪些步骤(因为有时候这一步意外不执行)

logrotate java日志切割_nginx_13

通过可视化,可以看到有3个目录是没有切割的

 

可以具体的ls看一下

logrotate java日志切割_nginx_14

如果切割成功的话,应该会有 2019-01-09 这样的时间后缀,这里明显没有,其实没切割原因是正确的,因为时间不符合要求

 

如果想强制切割的话 –f   ,logrotate  -vf

logrotate java日志切割_logrotate java日志切割_15

ls 看一下强制切割后的日志,已经带有时间后缀了,切割成功

logrotate java日志切割_nginx_16