使用logrotate进行日志切割
2024-08-21 / Server / 205 次围观 / 0 次吐槽 /配置文件全局参数说明:
vi /etc/logrotate.conf weekly #每周执行一次日志切割 rotate 4 #表示日志切割后历史文件最多保留最近的多少份(4 表示保留最近的4份) create #指定新创建的文件权限与所属主与所属组 dateext #使用日期为后缀的回滚文件 #compress #压缩日志文件 include /etc/logrotate.d #单独子项目日志切割配置规则的目录 # 全局日志切割规则 /var/log/wtmp { monthly #每月切割一次 create 0664 root utmp #设置wtmp这个日志文件的权限,属主,属组 minsize 1M #文件大小的最小值超过1M进行切割(主要看这个大小来切割,不一定按每月时间来切割) rotate 1 #日志切割后历史文件最多保留多少份(不含当前使用的日志) } /var/log/btmp { missingok #如果文件丢失,将不会报错 monthly create 0600 root utmp rotate 1 }
其他参数说明:
monthly #日志文件按照月切割吗,其他值可用 daily ,weekly ,yearly delaycompress #与compress 一起使用,指示不要将最近的归档压缩,压缩将在下一次周期进行(一般在于软件读取最新的归档时有用) size #指定大小才会切割日志 notifempty #如果日志文件为空,切割不会进行 postrotate/endscript #在其他所有的指令完成后,指定的命令将会被执行。这种情况下rsyslogd进程将会立即读取配置并继续运行 /var/lib/logrotate/status #中默认记录上次切割的时间
使用logrotate进行ssh 日志分割
自定义ssh服务的日志类型与存储位置
vi /etc/rsyslog.conf #把自定义local0 类别的日志保存到/var/log/sshd.log #在73行下面插入以下内容 local0.* /var/log/sshd.log
vi /etc/ssh/sshd_config #把sshd服务日志默认的类别改为我们自定义的local0 #把SyslogFacility AUTHPRIV 改为 SyslogFacility local0
#重启rsyslog服务 systemctl restart rsyslog #重启sshd服务 systemctl restart sshd
验证日志是否生成
cat /var/log/sshd.log
切割sshd日志配置文件:
vi /etc/logrotate.d/sshd #创建一个sshd日志切割配置文件,插入以下内容 /var/log/sshd.log { missingok weekly create 0600 root root minsize 10M rotate 3 } #重启服务生效 systemctl restart rsyslog
如果想每分钟或小时切割可以调用计划任务
crontab -e */1 * * * * logrotate -vf /etc/logrotate.d/sshd
#测试,不实际切割输出测试结果
logrotate -d /etc/logrotate.d/sshd
#强制切割,不满足条件也切割
#-v 显示执行过程 -f 强制执行 logrotate -vf /etc/logrotate.d/sshd
- 上一篇:Linux日志的分类与级别
- 下一篇:配置rsyslog远程日志服务器
Powered By Cheug's Blog
Copyright Cheug Rights Reserved.