windows ftp 上传文件那些事

收到dba help 需要在windows 备份sql-server db文件,原先已经备份到一个目录,需要再次上传ftp进行二次备份。一天执行一次备份文件,使用windows自带任务计划调用bat脚本即可。

目前写了version1 的脚本,检索指定目录,格式为当天后缀为bak的文件,例 xuyw_backup_2019_07_10_010003_5281025.bak

@echo off
set ftp_host=你的ftp地址
set ftp_port=端口
set ftp_user=用户名
set ftp_pwd=密码
set file_path=上传文件目录
set backup=备份文件目录
set file_name=%file_path%*_%date:~0,4%_%date:~5,2%_%date:~8,2%*.bak
echo open %ftp_host% %ftp_port% >> temp.txt
echo user %ftp_user% %ftp_pwd% >> temp.txt
echo bin >> temp.txt
echo cd %backup%>> temp.txt
for %%i in (%file_name%) do (
echo %%i
echo put %%i >> temp.txt
)
echo bye >> temp.txt
ftp -n -s:"temp.txt"
del /q temp.txt
exit

乍一看,貌似没啥问题吧。执行bat也能上传,but 上传了个2g的文件。就没那么完美了,上传文件成功但是大小为0,这显然是

不满足啊。查了相关资料,说什么ftp 主动模式 被动模式,我找了很久说什么设置被动模式。都没生效,没啥卵用。网上说关掉防火墙就可以,确实是可以。但是安全要求,肯定不能关。没得法子了,只能另外想法子。

忽然想到既然ftp工具能上传上去,那我是不是。可以直接调用ftp工具的命令呢?FlashFXP.exe 这个工具就提供命令方式上传

version 2

@echo off
set ftp_host=xx
set ftp_port=21
set ftp_user=xx
set ftp_pwd=xx
set file_path=f:\backup\
set backup=/backup/
set file_name=%file_path%*_%date:~0,4%_%date:~5,2%_%date:~8,2%*.bak
for %%i in (%file_name%) do (
flashfxp.exe -upload ftp://%ftp_user%:%ftp_pwd%@%ftp_host%:%ftp_port% -localpath=%%i -remotepath=%backup%
)
closeFlashFXP.bat
exit
#closeFlashFXP.bat
@echo off
taskkill /f /im flashfxp.exe
exit

搞定,就是关闭flashfxp程序,使用参数没法关闭。强制加了taskkill 

flashfxp 参数说明  https://www.flashfxp.com/forum/flashfxp/frequently-asked-questions-faq-/14748-command-line-switches.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值