【FTP+BAT】Windows 腳本自動備份,通過FTP傳輸到其他服務器,並設置定時任務【詳細】

一開始我想自己一步一步貼圖往上寫,寫了之後一對比,發現別人寫得更好!!!那我就引用大佬的,剩下自己在補充QAQ

資源列表如下:

Windows Server 2012 R2

 

一、開通FTP服務器

要想在兩個機器之間實現傳輸文件,那就得開通FTP服務

Windows Server 2012R2 FTP服務介紹及搭建

 

二、寫腳本文件

@echo off

::	總的目錄
set Source=

:: 本地要備份的目錄,必須以\結尾
set sourcePath=%Source%\data\

:: 本地存放備份壓縮包路徑
set rarPath=%Source%\BackupRAR\

:: 日誌存放本地路徑
set logDir=%Source%\log\

:: FTP命令文件
set FTPFile=%Source%\ftp.txt

:: 備份壓縮包文件遠程存儲路徑(可以是網絡路徑,前提是必須要有權限管理該路徑下的文件夾)
set bakDataTargetPath=
::	備份日誌文件的遠程存儲路徑
set bakLogTargetPath=

:: 截取日期函數
set dateStr=%date:~0,4%%date:~5,2%%date:~8,2%

:: 時間戳
set timeStr=%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%

:: 日誌文件名
set logFile=%logDir%log

::==================設置登錄的FTP服務器IP、賬號密碼=============
set FTP_IP=
set username=
set password=
::==============================================================

:: 創建對應文件
if not exist %rarPath% mkdir %rarPath%
if not exist %sourcePath% mkdir %sourcePath%
if not exist %logDir% mkdir %logDir%
if not exist %FTPFile% (type nul > %FTPFile%)
if not exist %logFile% (type nul > %logFile%)

::壓縮文件到指定目錄下
rar a -m5 -ep1 -r %rarPath%%dateStr%.rar %sourcePath%
echo %date:~0,10% %time% The File [%sourcePath%] RAR to [%dateStr%.rar] Successful >>%logFile%

::使用FTP傳輸文件
echo open %FTP_IP%>>%FTPFile%
echo %username%>>%FTPFile%
echo %password%>>%FTPFile%
::進入目標備份服務器的指定文件夾
echo cd %bakDataTargetPath%>>%FTPFile%
echo send %rarPath%%dateStr%.rar>>%FTPFile%
echo cd ..>>%FTPFile%
echo cd log>>%FTPFile%
echo send %logFile%>>%FTPFile%
echo bye>>%FTPFile%

echo %date:~0,10% %time% The File [%dateStr%.rar] successfully transferred to the server>>%logFile%

ftp -s:%FTPFile%
::清空文本內容
@echo.>%FTPFile% 



 

三、設置定時任務

1、選擇任務計劃程序

 

2、創建任務

 

3、勾選“不管用戶是否登錄都要運行”、“使用最高權限運行

 

4、每天定時任務,就勾選每天

 

如果想每分鐘執行一次,就高級設置,勾選“重複任務間隔”、“已啓用”,持續時間根據自己需要選擇

注意:時間可以自己手打進去,選項中沒有1分鐘

 

5、添加操作,起始於(可選):執行文件所在目錄

 

6、設置  請勿啓動新實例 。 其他不用管

 

 


如果還有需要定時刪除前面幾天的備份文件,可以參考以下鏈接:

Windows使用bat腳本定時備份文件(夾)並刪除一定日期之前的備份和日誌

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章