目录
1.logrotate命令
# 支持按时间和大小来自劢切分,以防止日志文件太大。
-v:显示日志轮替过程。
-f:强制进行日志轮替。不管日志轮替的条件是否已经符合,强制配置文件中的所有日志进行轮替。
日志切割
当日志达到某个特定的大小,我们将日志分类,之前的日志保留一个备份,再产生的日志创建一个同名的文件保存新的日志
日志轮替
最主要的作用就是把旧日志文件移动并改名,同时建立新的空日志文件。当旧日志文件数量超出保存范围后就进行删除。
logrotate 配置文件主要有:
/etc/logrotate.conf 以及 /etc/logrotate.d/ 这个子目录下的明细配置文件。
[root@localhost ~]# vim /etc/cron.daily/logrotate#查看 logrotate 脚本内容
logrotate 程序每天由 cron 在指定的时间(/etc/crontab)启动
2.日志轮替实验
编辑配置文件,写规则
[root@localhost log]# vim /etc/logrotate.conf
说明:(全局参数)
weekly : 每周执行切割轮替,或者说每周执行一次日志切割轮替
日志文件将按*轮循。其它可用值为daily天,weekly周,monthly月,yearly年
rotate: 表示日志切分后历史文件最多保存离现在最近的多少份
create : 指定新创建的文件的权限不所属主不群组
dateext : 使用日期为后缀的切割文件
第一步:有已写好的规则
第二步:写自定义日志:
[root@localhost ~]# vim /etc/rsyslog.conf
*.* /var/log/alert.log
第二步:重启 rsyslog 服务,使配置生效。
[root@localhost ~]# systemctl restart rsyslog.service
第三步:ls /var/log 查看,有all.log文件
第四步:添加a属性并查看
[root@localhost ~]# chattr +a /var/log/all.log
[root@localhost ~]# lsattr /var/log/all.log
第五步:创建 用户user2
[root@localhost ~]# useradd user2
第六步:查看有无写入记录
[root@localhost ~]# vim /var/log/all.log
第七步:上传日志轮替规则
[root@localhost ~]# rz #alog(写好的规则)
[root@localhost ~]# cp -a ./alog /etc/logrotate.d/ #复制到该文件下
[root@localhost ~]# ls /etc/logrotate.d/ #查看一下有无alog规则文件
第八步:执行日志轮替规则
[root@localhost ~]# logrotate -vf /etc/logrotate.conf #(全局记录)
[root@localhost ~]#ls /var/log/ #查看一下,发现生成了all.log-20210825
第九步:查看user2的日志记录
[root@localhost ~]# vim /var/log/all.log #没有user2的记录
[root@localhost ~]# vim /var/log/all.log-20210825 #发现有user2的记录
第十步:继续实验
[root@localhost ~]# useradd user3 #创建用户user3
[root@localhost ~]# vim /var/log/all.log-20210528 #没有user3的记录
[root@localhost ~]# vim /var/log/all.log #有user3的记录