雖然windows自帶ntbackup很好使,但是好像缺少個壓縮功能,或許是我不會吧,而且由于磁盤空間的限制,得定期刪除舊文件,懶得使用第三方軟件,還是自己編個批處理,加上系統(tǒng)的任務計劃。
首先計算機要安裝Winrar,我是默認安裝的,安裝路徑就是c:\Program Files\winrar\
開始備份吧。
比如要備份 D:\WEB這個文件夾 到 F:\bak文件夾下面,
命令如下
start c:\"Program Files"\winrar\rar a -k -r -s -m1 -agYYYYMMDD-{bak}-NN F:\BAK\ D:\WEB\
就這一條命令就能搞定了,解釋下這條命令,a是添加文件到壓縮包,-k是鎖定壓縮包,-s是轉換文件為解壓縮文件,-m1是壓縮的標準,就是快速壓縮,標準壓縮,好壓縮......,-ag是指定生成的文件名,按照我的設置生成的文件名為20091223-bak-02.rar,生成以日期命名的壓縮文件,F(xiàn):\BAK\是生成壓縮包存放路徑,D:\WEB\是壓縮目標。詳細的壓縮參數(shù)可在命令行輸入c:\"Program Files"\winrar\rar /?或者進入c:\"Program Files"\winrar\ 目錄,里面有個使用幫助.chm的文件。
如果生成的備份文件需要覆蓋上次生成的文件,那命令就更簡單了。
命令如下
start c:\"Program Files"\winrar\rar a -k -r -s -m1 F:\BAK\每日備份.rar D:\WEB\
這條命令我不解釋了,參照上面的應該能夠理解。
下面是刪除舊的備份文件。
由于我硬盤只有100G,每天大概備份文件是10G,所以我是設置為每周星期天刪除7天前的備份文件。
命令如下:
set deltime=%date:~0,10%
forfiles.exe /p E:\ /s /m *.rar /d -7 /c "cmd /c del /s @path >>D:\log\%deltime%.txt"
set deltime=%date:~0,10%這句是取一個當前時間的變量,forfiles.exe是系統(tǒng)文件,查找文件的。
/P是定義查找的路徑
E:\是定義查找路徑E盤下面
/S是定義查找范圍包括子目錄
/M *.rar 定義查找*.rar的文件
/D 是當前時間
-7 早于或者等于當前時間減7天,也就是7天前
/C 是調(diào)用命令行CMD.EXE的命令
"cmd /c del /s @path >>D:\log\%deltime%.txt" 這個是刪除查找到的文件,并且把刪除文件的文件名導出到
D:\log\%deltime%.txt這個txt文檔
%deltime%是系統(tǒng)變量,如果當前時間是20091223,那么生成的文件就是D:\log\20091223.txt,其實導出這個列表只是為了方便查看刪除了那些東西
把兩個批處理保存為bak.bat 和del.bat,前面是備份的,后面是刪除舊的備份文件。然后利用任務計劃設置運行的時間,按照我的需要,我設置是
每日01:30運行bak.bat
每周日23:00運行del.bat