FTP 大文件上传优化
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,优化方案思路:通过tar把大文件切分成多个100m大小的文件,然后通过多进程上传。脚本如下: #!/bin/bash########################################Au
千家信息网最后更新 2025年12月02日FTP 大文件上传优化
优化方案思路:通过tar把大文件切分成多个100m大小的文件,然后通过多进程上传。
脚本如下: #!/bin/bash
#######################################
#Author:Jianjun Zhang
#Create Data:2017-03-22
#Propose:For big file upload
#Modify Data:
#######################################
#使用tar切分大文件成多个100m的小文件
tar -czf - ftp_test.dmp | split -b 100m -d - ftp_test.tar.gz
#计算切分成了多少个小文件
fc=`ls -l |grep "ftp_test.tar.gz*" |wc -l`
echo $fc
#使用for循环
for ((a=0; a<$fc; a++))
do
if [ "$a" -lt 10 ]; then
i=0"$a"
else
i="$a"
fi
#查看ftp进程数量,当小于5个FTP进程的时候继续在启用一个FTP进程
fpc=`ps -ef|grep "ftp -v -n 192.168.1.100" |wc -l`
while [ "$fpc" -gt 5 ]
do
sleep 5
fpc=`ps -ef|grep "ftp -v -n 192.168.1.100" |wc -l`
echo $fpc
done
echo $i
#FTP部分
echo user ftp_test ftp_test > ftp"$i".txt
echo binary >> ftp"$i".txt
echo hash >> ftp"$i".txt
echo prompt >> ftp"$i".txt
echo cd result_bj >>ftp"$i".txt
echo passive >>ftp"$i".txt
echo put ftp_test.tar.gz"$i" >> ftp"$i".txt
echo bye >> ftp"$i".txt
echo start upload the expdp file.
sleep 2
#后台执行FTP
ftp -v -n 192.168.1.100 < ftp"$i".txt &
rm -rf ftp"$i".txt
done
结论:上传时间约为单个文件上传的1/5,且不会出现FTP上传进程僵死的情况,缺点是这样上传很占用带宽。
优化方案思路:通过tar把大文件切分成多个100m大小的文件,然后通过多进程上传。
脚本如下: #!/bin/bash
#######################################
#Author:Jianjun Zhang
#Create Data:2017-03-22
#Propose:For big file upload
#Modify Data:
#######################################
#使用tar切分大文件成多个100m的小文件
tar -czf - ftp_test.dmp | split -b 100m -d - ftp_test.tar.gz
#计算切分成了多少个小文件
fc=`ls -l |grep "ftp_test.tar.gz*" |wc -l`
echo $fc
#使用for循环
for ((a=0; a<$fc; a++))
do
if [ "$a" -lt 10 ]; then
i=0"$a"
else
i="$a"
fi
#查看ftp进程数量,当小于5个FTP进程的时候继续在启用一个FTP进程
fpc=`ps -ef|grep "ftp -v -n 192.168.1.100" |wc -l`
while [ "$fpc" -gt 5 ]
do
sleep 5
fpc=`ps -ef|grep "ftp -v -n 192.168.1.100" |wc -l`
echo $fpc
done
echo $i
#FTP部分
echo user ftp_test ftp_test > ftp"$i".txt
echo binary >> ftp"$i".txt
echo hash >> ftp"$i".txt
echo prompt >> ftp"$i".txt
echo cd result_bj >>ftp"$i".txt
echo passive >>ftp"$i".txt
echo put ftp_test.tar.gz"$i" >> ftp"$i".txt
echo bye >> ftp"$i".txt
echo start upload the expdp file.
sleep 2
#后台执行FTP
ftp -v -n 192.168.1.100 < ftp"$i".txt &
rm -rf ftp"$i".txt
done
结论:上传时间约为单个文件上传的1/5,且不会出现FTP上传进程僵死的情况,缺点是这样上传很占用带宽。
文件
进程
多个
单个
后台
大小
带宽
思路
情况
数量
方案
时候
时间
结论
缺点
脚本
过多
部分
循环
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
计算机网络技术专科实习时间
国家网络安全工作部地址
网络安全写字素材
方舟服务器加mod内存变大
华为会议终端是服务器吗
竞标软件开发具备专业技能
大数据一体机就是服务器吗
闪电网络服务器
国外培养工业软件开发人才的大学
中国计算机网网络安全
软件开发企业核心竞争力
以下属于关系数据库的有
软件数据库的面向对象视角的作者
网易我的世界服务器防透
自己开发小程序要租服务器
王者游戏中的服务器升级
绿云软件数据库在
网络矩阵服务器
数据库ppt素材
碧蓝航线是用什么软件开发的
深圳cpu服务器散热器
数据库返回结果查询
xbox战地5切换服务器
数据库中的各种实现类型
华科国家网络安全新校区
服务器如何安装管理软件
富民创新软件开发网上价格
web服务器安全策略面试题
绍兴数据网络技术包括什么
企业软件开发技术人员职责