1.vsftp每次上传都有记录信息。比如大小,名称,速度等。
2.在linux下利用logrotate进行每天分割日志,(配置档/etc/logrotate.d/vsftpd)
例:
/ftplog/log/vsftpd.log {
# ftpd doesn't handle SIGHUP properly
nocompress
missingok
create 0777 root root
daily
dateext
rotate 10
}
/ftplog/log/xferlog {
# ftpd doesn't handle SIGHUP properly
nocompress
missingok
create 0777 root root
daily
dateext
rotate 10
}
以上为每天一切割。
2.对xferlog日志进行数据分析。
红色标记的即为大小byte。
#!/bin/sh
#############################################
############说明#############################
#脚本产生三个文件输出,其中
#1.byjitai为产生的每个机台(/ftproot/M/下)上传的文件全部筛选
#2.bypcs为每个机台筛选后每个图片大小列表
#3.allpcs为bypcs里面的数字加总
echo -en "\e[32m请输入查询的LOG日期(20230330):\e[0m"
read riqi
mkdir /home/output/byjitai/$riqi
mkdir /home/output/bypcs/$riqi
mkdir /home/output/allpcs/$riqi
jitaimc=`cat /home/M.txt`
for i in $(cat /home/M.txt)
do
grep $i /bak_ftproot/ftplog/ftp1/xferlog-$riqi > /home/output/byjitai/$riqi/$i-$riqi.txt
cat /home/output/byjitai/$riqi/$i-$riqi.txt | awk -F' ' '{print $8}' > /home/output/bypcs/$riqi/$i-$riqi-pcssizes.txt
#以下求和计算对数值行数太多会报错xargs: argument line too long故弃用
# cat /home/output/bypcs/$riqi/$i-$riqi-pcssizes.txt |xargs echo -n | tr ' ' '+' | xargs echo | bc > /home/output/allpcs/$riqi/$i-$riqi-allpcssizes.txt
awk '{sum += $1};END {print sum}' /home/output/bypcs/$riqi/$i-$riqi-pcssizes.txt > /home/output/allpcs/$riqi/$i-$riqi-allpcssizes.txt
done
可以统计某个目录下文件上传的个数,大小,总计等信息。