在CentOS系统中,可以通过配置rsyslog服务来实现FTP服务器日志的轮转。以下是详细的步骤:
如果你的系统还没有安装rsyslog,可以使用以下命令进行安装:
sudo yum install rsyslog
编辑rsyslog配置文件 /etc/rsyslog.conf
或者 /etc/rsyslog.d/50-default.conf
(具体路径可能因CentOS版本而异)。
sudo vi /etc/rsyslog.conf
在配置文件中找到以下行(如果没有,可以手动添加):
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
在这两行下面添加以下内容,用于指定FTP日志文件的位置和轮转策略:
# FTP server logs
if $programname == 'vsftpd' then /var/log/vsftpd.log
& stop
CentOS默认使用 logrotate
工具来管理日志文件的轮转。你需要编辑FTP日志文件的轮转配置。
sudo vi /etc/logrotate.d/vsftpd
确保配置文件中有以下内容:
/var/log/vsftpd.log {
daily
missingok
rotate 7
compress
notifempty
create 640 root adm
}
解释:
daily
: 每天轮转一次日志文件。missingok
: 如果日志文件丢失,不会报错。rotate 7
: 保留7个轮转后的日志文件。compress
: 压缩轮转后的日志文件。notifempty
: 如果日志文件为空,则不进行轮转。create 640 root adm
: 创建新的日志文件,权限为640,属主为root,属组为adm。保存并退出配置文件后,重启rsyslog服务以应用更改:
sudo systemctl restart rsyslog
确保FTP日志文件正在被正确记录,并且轮转策略生效。你可以手动触发一次日志轮转来验证:
sudo logrotate -f /etc/logrotate.d/vsftpd
然后检查 /var/log/vsftpd.log.*
文件是否存在并且大小合理。
通过以上步骤,你应该能够在CentOS系统上成功设置FTP服务器日志的轮转。