日志轮替
日志轮替就是把旧的日志文件移动并改名,同时建立新的空日志文件,当旧日志文件超出保存的范围以后,就会进行删除。
- 日志轮替文件命名
- centos7使用logrotate进行日志轮替管理,要想改变日志轮替文件名字,通过/etc/logrotate.conf(全局的日志轮替策略/规则,也可以单独给某个日志文件指定策略)配置文件中"dateext"参数。
- 如果配置文件中有"dateext"参数,那么日志会用日期来作为日志文件的后缀,例如"secure-20201010".这样日志文件名不会重名,也就不需要日志文件的改名,只需要指定保存日志个数,删除多余的日志文件即可。
- 如果配置文件中没有"dateext"参数,日志文件就需要进行改名了。当第一次进行日志轮替时,当前的"secure"日志会自动改名为”secure.1“,然后新建”secure"日志,用来保存新的日志。 当第二次进行日志轮替时,“secure.1"会自动改名为"secure.2",当前的"secure"日志会自动改名为"secure.1",然后也会新建"secure"日志,用来保存新的日志,以此类推。
- logrotate配置文件
/etc/logrotate.conf为logrotate的全局配置文件
# rotate log files weekly 每周对日志文件进行一次轮替
weekly
# keep 4 weeks worth of backlogs 共保存4份日志文件,当建立新的日志文件时,旧的将会被抛弃
rotate 4
# create new (empty) log files after rotating old ones 在日志轮替后创建新的空的日志文件
create
# use date as a suffix of the rotated file 使用日期作为日志文件的后缀
dateext
# uncomment this if you want your log files compressed 日志文件是否压缩,如果取消注释,则日志会在转储的同时进行压缩
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d # 也可以把某个日志文件的轮替规则,单独以一个文件写到/etc/logrotate.d目录下
# 下面是单独设置,优先级更高
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
monthly # 每月对日志文件进行一次轮替
create 0664 root utmp #建立新的日志文件,权限时0664,所有者是root,所属组是utmp组
minsize 1M # 日志文件最小轮替大小是1MB,也就是日志一定要超过1MB才会轮替,否则就算时间达到一个月,也不进行日志转储
rotate 1 # 仅保留一个日志备份,也就是只有wtmp和wtmp.1日志保留而已。
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}
日志轮替感觉还是在linux中非常基础的功能,个人或许用不上,但当入职时接触到公司的项目,日志通常会定期进行生成以防意外给公司造成损失。如此日志轮替定期删除日志,作为linux管理员还是一项非常基础的功能。