1. 程式人生 > >windows系統下定時備份資料到遠端ftp

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)新增到防火牆例外.