VSFTP的日志文件路徑由配置文件/etc/vsftpd/vsftpd.conf
決定,常見路徑包括:
/var/log/vsftpd.log
(需開啟local_log_file
參數);/var/log/vsftpd/xferlog
(需開啟xferlog_enable
參數)。grep "local_log_file" /etc/vsftpd/vsftpd.conf # 查看會話日志路徑
grep "xferlog_file" /etc/vsftpd/vsftpd.conf # 查看傳輸日志路徑
使用tail -f
命令可實時跟蹤日志文件的新增內容,適用于監控當前FTP活動(如用戶登錄、文件傳輸):
sudo tail -f /var/log/vsftpd.log # 實時會話日志
sudo tail -f /var/log/vsftpd/xferlog # 實時傳輸日志
按Ctrl+C
可停止實時跟蹤。
當日志文件較大時,使用less
或more
命令分頁查看,避免屏幕溢出:
sudo less /var/log/vsftpd.log # 分頁會話日志(支持上下箭頭翻頁、/關鍵詞搜索)
sudo more /var/log/vsftpd/xferlog # 分頁傳輸日志(空格鍵翻頁、q鍵退出)
less
的功能更強大,推薦優先使用。
通過grep
命令篩選日志中的關鍵詞,快速定位所需信息:
sudo grep "user login attempt" /var/log/vsftpd.log
;sudo grep "ERROR" /var/log/vsftpd.log
;sudo grep "username" /var/log/vsftpd/xferlog
。|
可進一步處理結果,例如統計登錄失敗次數:sudo grep "failed login" /var/log/vsftpd.log | wc -l
。若VSFTP服務由systemd
管理(默認情況),可使用journalctl
查看系統級日志:
sudo journalctl -u vsftpd.service # 查看vsftpd服務所有日志
sudo journalctl -u vsftpd.service -f # 實時跟蹤服務日志
該命令可整合系統日志與服務日志,便于排查與服務相關的故障。
使用awk
命令提取日志中的特定字段(如時間、IP地址、用戶名),適用于數據分析:
awk '{print $1, $2, $8}' /var/log/vsftpd.log
;xferlog_std_format=YES
)。awk
的語法靈活,可根據日志格式調整字段編號。通過logrotate
工具自動輪轉日志,防止日志文件占用過多磁盤空間。編輯/etc/logrotate.d/vsftpd
文件,添加以下配置:
/var/log/vsftpd/*.log {
daily # 每天輪轉
missingok # 若日志不存在也不報錯
rotate 7 # 保留最近7天的日志
compress # 壓縮舊日志(如.gz格式)
notifempty # 若日志為空則不輪轉
create 640 root adm # 創建新日志文件的權限與所有者
}
配置完成后,logrotate
會自動按計劃執行輪轉(通常每日一次)。
對于大規模日志分析,可使用ELK(Elasticsearch+Logstash+Kibana)工具鏈實現可視化:
/etc/logstash/conf.d/vsftpd.conf
),并發送至Elasticsearch;http://localhost:5601
,創建儀表盤展示登錄趨勢、傳輸量等指標。