星期二, 1月 09, 2007

檔案資料增量備份的工具xxcopy

因為友人的大量每日資料搬移備份需求,
所以幫他調查了可用的工具, 發覺了xxcopy 這一個freeware工具,
應該是不錯用.

以下是相關的使用說明(節錄修改自資安論壇 備援系統討論版的一篇文章):

第一步:下載工具

前往 http://www.xxcopy.com/index.htm#download 下載xxcopy。

下載後,把xxcopy.zip壓縮包解壓到一檔夾下,執行install.bat,程式詢問時,一律按下Y鍵完成安裝。

第二步:編寫批次處理命令

假設我們要把D:\data下的所有新建或更新過的檔(夾)拷貝到E:\back檔夾下,那可以執行notepad,啟動“記事本”工具,
編輯批次檔, 輸入如下命令:

xxcopy "D:\data" "E:\back" /s /k /h /bi /yy

然後把該文件儲存為如d:\back.bat批次檔。以後只要執行d:\back.bat即可進行文件的備份工作。

第三步:深入理解參數

xxcopy參數非常多(可以打xxcopy /? 看參數說明),重要參數意義如下:

/s 表示連同子檔夾處理
/k 原始檔案仍保留其原有屬性
/h 連同系統、隱藏檔一起拷貝
/bi 只拷貝新建或更新過的(根據檔時間和長度判斷)文件
/yy 覆蓋檔時自動回答“是”,並不出現提問資訊

使用例1:只備份相關檔

很多時候我們只要備份某一類型檔,如*.doc、*.xls、*.ppt、*.txt等,而無需備份其他檔,這時仍可以使用xxcopy完成。

大家只要啟動“記事本”,輸入如下命令:
xxcopy "d:\data" "e:\back" /s /k /h /bi /yy /in*.doc /in*.xls /in*.ppt /in*.txt
把它保存為include.bat,雙擊它,只會備份d:\data下的*.doc、*.xls、*.ppt、*.txt文件到e:\back文件夾下。

小提示

多種類型檔分別用/in參數隔開,並把/in參數放在命令行的最後。如輸入
xxcopy "d:\data" "e:\back" /s /k /h /bi /yy /in*.doc /in*.xls /in*.ppt /in*.txt /in*.bmp /*.tif,則還會備份*.bmp和*.tif文件。

使用例2:垃圾檔不備份

有時,我們並不想備份*.tmp和*.bak檔,這時可以啟動“記事本”,並輸入如下命令:
xxcopy "d:\data" "e:\back" /s /k /h /bi /yy /x*.tmp /x*.bak
把它保存為exclude.bat,雙擊此檔,則只會備份d:\data下除了*.bak和*.tmp的文件到e:\back文件夾下。

小提示

★多種類型檔分別用/x參數隔開,並把/x參數放在命令行的最後。如輸入xxcopy "d:\data" "e:\back" /s /k /h /bi /x*.tmp /x*.bak /*.abc,則xxcopy也不會處理*.abc文件。

★刪除檔案,輸入
xxcopy *.tmp /s /h /yy /rs可把當前檔夾(包括了檔夾)下所有*.tmp檔刪除掉。

使用例3:備份指定日期檔

輸入xxcopy "d:\data" "e:\back" /s /k /h /bi /da:2003-12-22,只備份2003年12月22日之後的檔。
xxcopy "d:\data" "e:\back" /s /k /h /bi /db:2003-12-25,只備份2003年12月25日之前檔。
xxcopy "d:\data" "e:\back" /s /k /h /bi /da:2003-12-22 /db:2003-12-25,只備份2003年12月22日和2003年12月25日之間的檔。