天天看點

用Winrar批處理以及計劃任務自動備份網站目錄

很多主機管理軟體都自帶有備份功能,筆者所用的兩種管理軟體:宏傑和星外都号稱有自動備份功能,也能夠每周備份出一些檔案。不過仍然有不少缺點,比如宏傑備份的資料庫是一個一個的,這在恢複的時候就不友善,最好是把整個資料庫的data檔案夾都備份下,然後恢複的時候直接解壓到相同檔案夾即可。而星外根本沒有備份資料庫的功能,需要手工備份。另外一個問題就是,随着近年來病毒檔案和檔案夾的增多,不少客戶的網站裡面有帶點和com等系統禁止檔案出現,導緻無法删除,用winrar軟體也無法壓縮,是以在備份到這個空間的時候,就會停止備份。

鑒于以上不确定性因素,我們作為空間商,最好還是采用自己開發的一套備份方案。這樣就算問題産生,也能很快對備份代碼進行修正。下面是我利用批處理程式和Windows計劃任務,對虛拟主機伺服器中的網站和資料庫進行備份的一套方案。

下面是備份客戶網站檔案所用的批處理程式。前面三行是擷取目前日期,然後在備份盤F盤生成同名的目錄,用來存放備份檔案。客戶的網站檔案是放在d:\freehost下面的,然後我們用一個for語句循環,借助Winrar的指令行模式,來壓縮這個目錄下的全部檔案夾。其中的幾個參數要說明下:

a就是表明是壓縮指令,-m1表明快速壓縮,-r表明包括子檔案夾,-ep1是對路徑的調整,-inul是忽略Winrar壓縮時出現的一些不能壓縮的錯誤,-x是排除指定字尾的檔案,如壓縮包和日志等。

@echo off

rem http://www.zhaomu.com/beifen

set var=%date:~0,10%

mkdir F:\hostbackup\%var%

d:

cd d:\freehost

for /d %%i in (“*") do “C:\Program Files\WinRAR\Winrar.exe” a -m1 -r -ep1 -inul -x*.zip -x*.rar -x*.log -x*.mp3 -x*.exe -x*.rmvb -x*.flv “F:\hostbackup\%var%\%%i.rar” “D:\freehost\%%i\” 

下面是備份兩種資料庫(SQLServer和MySQL)所用的批處理程式。我們先把資料庫服務暫停,然後壓縮整個data目錄,再啟用服務。其中-ag”-MMDD”是在壓縮檔案名後面加上目前日期,以差別不同時候的備份。

@echo off

net stop MSSQLSERVER

"C:\Program Files\WinRAR\winrar.exe” a -ag”-MMDD” -m1 -r -ep1 -x*.bak “F:\hostbackup\sqlserver.rar” “D:\Program Files\Microsoft SQL Server\MSSQL\Data”

net start MSSQLSERVER

net stop mysql

"C:\Program Files\WinRAR\winrar.exe” a -ag”-MMDD” -m1 -r -ep1 -x*.sql “F:\hostbackup\mysql.rar” “D:\Program Files\MySQL\MySQL Server 5.0\data”

net start mysql

我們把這兩個批處理bat檔案制作好之後,然後添加到計劃任務裡面,設定成每周備份一次,最好是在深夜進行,這樣網絡比較空閑備份速度快,不影響客戶網站正常通路。

轉載于:https://blog.51cto.com/radarxu/836755