1 开启日志功能
在配置文件vsftpd.conf中添加
xferlog_enable=YES //这个选项启用了传输日志记录功能。
vsftpd_log_file=/mnt/ram/vsftpd.log //这个选项指定了传输日志文件的存放路径和文件名。
这样就可以实现VSFTPD的日志功能了,如果不使用vsftpd_log_file指定路径,则会采用默认路径"/var/log/vsftpd.log"
2 设置日志备份,并定时清理日志文件
根据vsftpd3.0.5的源码,关于日志,vsftpd只提供日志记录服务,并不提供日志的维护。即vsftpd只会一直往你给定的日志文件或默认的日志文件里写,并不会考虑这个日志文件有多大,也不会定时清理或覆盖。
避免日志文件无限增大,可以写一个shell脚本,但是shell脚本我也不怎么会,大四学校其实开了Linux基础有系统机会好好学Shell的,但是我只听了几节课,就没去学校了。。。想哭好好学习的重要性。
#!/bin/sh
backup_dir="/XXX/XXX/XXX/XXX" #日志需要备份的位置
baseLog_dir="/XXX/XXX/XXX/XXX" #日志所在路径
vsftpd_log="vsftpd.log"
#不存在则创建
if [ ! -d "$backup_dir" ]; then
mkdir -p "$backup_dir" # 使用 -p 选项创建目录
fi
if [ -f "$baseLog_dir/$vsftpd_log" ]; then
cp $baseLog_dir/$vsftpd_log $backup_dir/0_$vsftpd_log
echo > $baseLog_dir/$vsftpd_log
fi
在终端上输入 crontab -e
0 */1 * * * /opt/vw/bin/Communicate/logBackup.sh
设置了一个 cron 任务,它将每小时执行一次 /opt/vw/bin/Communicate/logBackup.sh 脚本。这个 cron 表达式 0 */1 * * * 的意思是:
0:在每小时的第0分钟执行。
*/1:每1小时执行一次。
*:对于日、月、周的字段,* 表示任何值,即每天、每月、每周。
这样就可以啦。