windows系统下定时备份数据到远程ftp

最新的web网站老是被开发改出问题,为了能及时恢复,每天要备份下文件,写个批处理加入计划任务,批处理如下

@echo off
echo 开始更新数据......
rem 格式化日期
rem date出来的日期是"2006-02-22 星期三",不能直接拿来使用,所以应该先格式化一下
rem 变成我们想要的。date:~0,4的意思是从0开始截取4个字符
set d=%date:~0,4%%date:~5,2%%date:~8,2%
rem 设定要备份的目录
set srcDir=D:\web_s\
rem 设定备份文件所在目录
set dstDir=D:\web_s\
rem 设置后缀名
set name=%d%.rar
set name=%name: =%

rem 如果文件不存在,开始备份
"D:\Program Files (x86)\WinRAR\WinRAR.exe" a -k -r -s -m1 -agYYYYMMDD %dstDir% %srcDir%

set user=12
set pass=12
set ip=10.1.1.1
rem 网站根目录
set RemoteFolder=test
rem 本地数据目录
set LocalFolder=D:\web_s
set ftpFile=D:\web_s\TempFTP.txt
echo open %ip%>%ftpFile%
echo %user%>>%ftpFile%
echo %pass%>>%ftpFile%
echo cd %RemoteFolder%>>%ftpFile%
echo lcd %LocalFolder%>>%ftpFile%
echo binary>>%ftpFile%
echo put %name%>>%ftpFile%
echo bye>>%ftpFile%
ftp -s:"%ftpFile%"
echo 更新完成.......

del %ftpFile%

pause


写的过程中遇到了不少问题,好在有百度,都解决了,下面记录下问题

(1)时间加文件压缩后缀中间老是有空格?

解决:

set name=%d%.rar
set name=%name: =%  去除空格

(2)windows下登陆linux下ftp用客户端工具可以,用批处理就报错 200 port command successful. consider using pasv 425 failed to establish connection?

解决:

网上说windows下不支持被动模式(我的linuxftp是被动模式的),要么关闭防火墙,要么就是吧ftp服务加入防火墙例外.

我的做法就是添加ftp服务(C:\windows\system32\ftp.exe)添加到防火墙例外.





猜你喜欢

转载自blog.csdn.net/qinshi501/article/details/52795424