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