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