在CentOS系统中,配置SFTP日志轮转可以通过编辑/etc/logrotate.d/目录下的相关配置文件来实现。以下是详细的步骤:
首先,确认SFTP的日志文件位置。通常,SFTP的日志会记录在/var/log/secure或/var/log/auth.log中,具体取决于系统配置。
使用文本编辑器(如vi、nano等)编辑/etc/logrotate.d/secure文件(如果日志在/var/log/secure中)或/etc/logrotate.d/auth.log文件(如果日志在/var/log/auth.log中)。
sudo vi /etc/logrotate.d/secure
在配置文件中添加或修改以下内容:
/var/log/secure {
daily
missingok
rotate 7
compress
notifempty
create 640 root adm
postrotate
/usr/sbin/killall -HUP syslogd
endscript
}
解释:
daily: 每天轮转一次日志。missingok: 如果日志文件丢失,不会报错。rotate 7: 保留7个轮转日志文件。compress: 压缩旧的日志文件。notifempty: 如果日志文件为空,则不轮转。create 640 root adm: 创建新的日志文件,权限为640,属主为root,属组为adm。postrotate 和 endscript: 在轮转后执行的命令,这里重启syslog服务以确保新的日志文件被创建。保存文件并退出编辑器。
你可以手动测试logrotate配置是否正确:
sudo logrotate -f /etc/logrotate.d/secure
如果配置正确,你应该会看到类似以下的输出:
reading config file /etc/logrotate.d/secure
...
rotating pattern: /var/log/secure daily (7 rotations)
empty log files are not rotated, old versions are removed
considering log /var/log/secure
log does not exist -- skipping
确保logrotate服务每天运行一次。CentOS通常已经配置了定时任务来运行logrotate,但你可以通过以下命令检查:
sudo systemctl status logrotate
如果需要,可以手动触发一次logrotate:
sudo systemctl restart logrotate
通过以上步骤,你应该能够成功配置SFTP日志的轮转。