使用命令行備份指定文件夾并保留最新N份
客戶需要對網站進行定期備份,并保留最近30天的文件,編寫后以下腳本,通過Windows的任務計劃進行調度
對比手工和任務計劃調度運行情況來看,手工運行中可直接調用RAR.exe和網絡進行傳輸,但是任務計劃調度則需要調用安裝RAR的程序并且無法進行網絡進行傳輸
1 :: 用于備份網站文件 2 rem ***********************需要配置*********************************** 3 rem 設置需要備份目錄 4 set sourcePath=D:\esa_app\ekp-j\ekp 5 6 rem 存放壓縮文件遠程服務器地址、用戶名和密碼 7 set remoteServerPath=10.164.117.75 8 set remoteUserName=administrator 9 set remotePassword=admin12345! 10 11 rem 遠程服務器存放備份文件目錄 12 set remoteTargetPath=d$\ekp_back 13 14 rem 壓縮程序路徑 15 set rarProgExePath="C:\Program Files (x86)\WinRAR\RAR.exe" 16 rem **************************************************************** 17 18 rem 臨時備份目錄存放目錄 19 set workRootPath=D:\$$TEMP_EKP_BACK 20 21 rem 備份保留份數 22 rem set backupNumber=30 23 set backupNumber=5 24 25 rem 形成備份文件名稱和存放路徑 26 set workFileName=ekp%date:~0,4%%date:~5,2%%date:~8,2% 27 set backWorkPath=%workRootPath%\%workFileName% 28 set strBatCurrPath=%cd% 29 30 rem 創建備份工作目錄 31 if not exist %workRootPath% md /s /q %workRootPath% 32 if exist %backWorkPath% rmdir /s /q %backWorkPath% 33 md %backWorkPath% 34 35 rem 把源文件拷貝到工作目錄中 36 xcopy %sourcePath% %backWorkPath% /s /e /h /y >%workRootPath%\log_backup_ekp%date:~0,4%%date:~5,2%%date:~8,2%.log 37 38 rem 壓縮文件 39 cd/d "%backWorkPath%\" 40 %rarProgExePath% -y a "%backWorkPath%.rar" -r * 41 42 rem 把壓縮文件傳送到遠程服務器進行備份 43 net use \\%remoteServerPath% %remotePassword%/user:%remoteUserName% 44 xcopy /y "%backWorkPath%.rar" \\%remoteServerPath%\%remoteTargetPath% 45 46 rem 在遠程服務器保留最新文件,份數按照設置進行保留 47 for /f "skip=%backupNumber% delims=" %%i in ('dir /s /b /o-d \\%remoteServerPath%\%remoteTargetPath%\*.rar') do del /f /q "%%i" 48 49 rem 刪除工作目錄和壓縮文件 50 cd/ 51 rmdir /s /q %backWorkPath% 52 del /f /q "%backWorkPath%.rar"
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。如果覺得還有幫助的話,可以點一下右下角的【推薦】,希望能夠持續的為大家帶來好的技術文章!想跟我一起進步么?那就【關注】我吧。

浙公網安備 33010602011771號