一、背景
最近发现一台机器的根目录占用比较大,最后排查发现是auth.log增长的比较快,排查无攻击后则开始解决问题
二、解决
本次通过调整日志保留个数来达到减少空间占用的问题,共有两种方法
方法一、调整公共配置文件
- 位置:/etc/logrotate.d/rsyslog
bash
/var/log/syslog
{
rotate 7 # 保留7个旧日志文件(即7天日志,因daily触发)
daily
missingok
notifempty
delaycompress # 但延迟到下次轮转后压缩(避免同时压缩导致性能问题)
compress # 压缩旧日志,
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscript
}
/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
rotate 4 # 保留4个旧日志文件(即4周日志,因weekly触发)
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscript
}
方法二、设置独立配置文件
如果想单独用一个文件来设置某一个日志的归档策略,比如auth.log,移除syslog文件中的/var/log/auth.log,创建一个新文件/etc/logrotate.d/auth-log
bash
/var/log/auth.log {
daily # 改为每日轮转(可选,根据需求调整)
rotate 7 # 保留7个旧日志文件
compress # 压缩旧日志
missingok # 日志丢失时不报错
notifempty # 空日志不轮转
create 0640 root adm # 创建新日志文件,权限0640,属主root,属组adm
sharedscripts
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscript
}