我们日志轮替之所以可以在指定的时间备份日志,其实也要依赖系统定时任务。如果大家还记得
    
     /etc/cron.daily/
    
    目录,就会发现这个目录中是有
    
     logrotate
    
    文件,
    
     logrotate
    
    命令通过这个文件依赖定时任务执行的。
   
    
     logrotate
    
    命令的格式
   
[root@localhost ~]# logrotate [选项] 配置文件名
选项:
  如果此命令没有选项,则会按照配置文件中的条件进行日志轮替。
  -v:显示日志轮替过程。
  -f:强制进行日志轮替。不管日志轮替的条件是否已经符合,强制配置文件中所有的日志进行轮替。
注意:
logrotate
命令一般不需要我们执行,需要强制轮替的时候才需要执行。
    我们执行
    
     logrotate
    
    命令,并查看下执行过程:
   
# 查看日志轮替的流程
[root@localhost ~]# logrotate -v /etc/logrotate.conf
# 截取一个日志轮替说明
# 这就是我们自己加入轮替的testerr.log日志。
rotating pattern:/var/log/testerr.log weekly(6 rotations)
empty log files are rotated,old logs are removed 
	considering log/var/log/testerr.log 
	log does not need rotating		<-- 时间不够一周,所以不进行日志轮替
    我们发现
    
     /var/log/testerr.log
    
    加入了日志轮替,已经被
    
     logrotate
    
    识别并调用了。只是时间没有达到轮替的标准,所以没有进行轮替。
   
那我们强制进行一次日志轮替,看看有什么结果:
# 强制进行日志轮替,不管是否符合轮替条件
[root@localhost ~]# logrotate -vf /etc/logrotate.conf
# 目标testerr.log日志文件片段
rotating pattern:/var/log/testerr.1og forced from command line(6 rotations)
empty log files are rotated,old logs are removed 
	considering 1og/var/log/testerr.log 
	log needs rotating		<-- 日志需要轮替
rotating log/var/log/testerr.log,log->rotateCount is 1
dateext suffix'-20200618'	<-- 提取日期参数
glob pattern'-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed 
running prerotate script 
fscreate context set to unconfined_u:object_r:var_log_t:s0
# 旧的日志被重命名
renaming/var/log/testerr.log to /var/log/testerr.log-20200618
# 创建新日志文件,同时制定权限、所有者和属组
creating new/var/log/testerr.log mode= 0600 uid =0 gid=0
running postrotate script
    我们发现
    
     testerr.log
    
    日志已经完成了日志轮替。
   
我们查看下新产生的日志和旧日志:
[root@localhost ~]# ll /var/log/testerr.log*
# 旧日志文件已经转储
-rw-------. 1 root root 0 6月 7 10:07/var/log/testerr.log
-rw-------. 1 root root 237 6月 18 09:58/var/log/testerr.log-20200618
# 新的日志文件被自动加入了chattr的a属性。
[root@localhost ~]# lsattr /var/1og/testerr.log
-a------e- /var/1og/alert.log
    
     logrotate
    
    命令使用
    
     “-f"
    
    选项之后,就不管日志是否已经符合了日志轮替条件,而强制把所有的日志都进行了轮替。
   
 
版权声明:本文为Liuyuelinjiayou原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
