1. 确定FTP服务器日志文件位置
Debian系统中,FTP服务器日志路径取决于所用软件(如vsftpd、ProFTPD)。常见默认路径为:
/var/log/vsftpd.log(部分配置可能使用/var/log/xferlog);/var/log/proftpd.log;/var/log/pure-ftpd.log。/etc/vsftpd/vsftpd.conf中搜索logfile关键字)。2. 基础日志查看命令
cat(一次性输出全部内容)、less(分页浏览,按q退出)或tail(查看最后N行,如tail -n 50查看最后50行);tail -f命令,可实时跟踪FTP服务器最新活动(如用户登录、文件传输),按Ctrl+C退出。3. 常用日志过滤与分析技巧
grep命令筛选某用户的操作记录(如grep 'username' /var/log/vsftpd.log);grep -E 'Failed password|Login incorrect|invalid user' /var/log/vsftpd.log);awk提取用户名并计数(如awk '/username/ {count++} END {print count}' /var/log/vsftpd.log);awk '{print $5}' /var/log/vsftpd.log | sort | uniq -c | sort -nr);awk或sed过滤时间戳(如awk '/2025-10-07/ {print $0}' /var/log/vsftpd.log或sed -n '/2025-10-07 00:00:00/,/2025-10-07 23:59:59/p' /var/log/vsftpd.log)。4. 高级日志分析工具
/etc/logwatch/conf/services/ftp.conf即可使用;5. 日志轮转配置(避免日志过大)
Debian系统默认使用logrotate工具管理日志轮转。可通过编辑/etc/logrotate.d/vsftpd文件(若不存在则创建)配置轮转规则,示例配置如下:
/var/log/vsftpd.log {
weekly # 每周轮转一次
rotate 4 # 保留最近4个日志文件
compress # 压缩旧日志(节省空间)
missingok # 若日志不存在也不报错
notifempty # 若日志为空则不轮转
create 640 root adm # 创建新日志文件并设置权限
sharedscripts # 所有日志轮转完成后执行脚本
postrotate
systemctl reload vsftpd > /dev/null 2>&1 || true
endscript
}
此配置会每周轮转vsftpd.log,保留最近4周的压缩日志,并在轮转后重新加载vsftpd服务。