(目前7-zip正式發行的版本:v19.0 2019-02-21)
- 7z格式使用LZMA及LZMA2的壓縮方式,可以進行高壓縮比的打包效果。
- 可以壓縮跟解壓縮的打包格式,有:7z, XZ, BZIP2, GZIP, TAR, ZIP 及 WIM。
- 也提供解壓縮下列的打包格式:AR, ARJ, CAB, CHM, CPIO, CramFS, DMG, EXT, FAT, GPT, HFS, IHEX, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, QCOW2, RAR, RPM, SquashFS, UDF, UEFI, VDI, VHD, VMDK, WIM, XAR 及 Z。
- 對7z及zip格式的打包,提供AES-256的加密演算。
- 提供壓縮內容的檔案瀏覽及管理功能。
- 除了可以透過操作介面來提供壓縮及解壓縮的進行,也提供列命列(command line)操作模式。因為有命令列的操作模式,可以讓程式開發人員在程式中輕易地用7z縮縮/解壓縮,也可以將7z指令,以批次檔的方式,用來執行定時備份。
除了功能視窗,也提供CRC-32, CRC-64, SHA-1, SHA-256的檔案雜湊值計算,這是我很喜歡的一個附加功能。
在 https://gist.github.com/amobiz/d0be531a7c109c785845 可以下載取得 differential-backup-using-7-zip-windows-7z-bak.cmd
這個批次檔可以提供完整備份(FULL BACKUP) 及 差異備份(DIFF BACKUP)
正式使用這個批次檔前,必須稍微調整設定一下。
- 第10/11行
set BAK_DIR=[你要儲存備份檔的目錄,不要包含路徑最後的 \ 字元]
set SRC_DIR=[你要備份的目錄,不要包含路徑最後的 \ 字元。用空格或逗號區隔不同目錄。如果目錄包含空白字元,請使用 "" 括住完整路目錄名稱]
- 調整一下7z執行檔的檔名
第47 / 59行,7za 改為 7z。 (之前7-zip有區分GUI / Command Line版本,目前我安裝的版本就沒有區分了)
必要的話,可以用 -p 參數幫壓縮檔加入開啟的密碼 ,例如 -pPASSWORD
7z a %FULL% %Z_OPT% %DIR% -pPASSWORD
7z u "%FULL%" %Z_OPT% -u- -up0q3r2x2y2z0w2^^!%DIFF% %DIR% -pPASSWORD
修改這四行後,這個cmd批次檔,就可以正常運作了 ...
以下是執行完整備份的執行歷程:
(使用FULL參數,執行7z-bak_test.cmd,批次檔會用指定被備份的目錄及當天的日期,建立壓縮檔 )
D:\myWorks\BatchBackup>7z-bak_test FULL
BAK_DIR=D:\myWorks\BatchBackup
SRC_DIR=D:\MyWorks\test
TYPE=FULL
date: "20191221"
time: "103412"
------------------
Requesting full backup for "D:\myWorks\test"...
...performing full backup...
7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21
Scanning the drive:
2 folders, 8 files, 42 bytes (1 KiB)
Creating archive: D:\myWorks\BatchBackup\test_20191221.7z
Add new data to archive: 2 folders, 8 files, 42 bytes (1 KiB)
Files read from disk: 8
Archive size: 288 bytes (1 KiB)
Everything is Ok
.
..."D:\myWorks\BatchBackup\test_20191221.7z"...done!
D:\myWorks\BatchBackup>
以下是執行差異備份的執行歷程:
(使用DIFF參數,執行7z-bak_test.cmd,批次檔會在存放備份壓縮檔的目錄,找到完整備份的壓縮檔,以此完整備份為基礎,進行差異備份 )
D:\myWorks\BatchBackup>7z-bak_test DIFF
BAK_DIR=D:\myWorks\BatchBackup
SRC_DIR=D:\MyWorks\test
TYPE=DIFF
date: "20191221"
time: "103651"
------------------
Requesting diff backup for "D:\myWorks\test"...
...finding full backup...
......found: "D:\myWorks\BatchBackup\test_20191221.7z"
...full backup found: "D:\myWorks\BatchBackup\test_20191221.7z"
...performing diff backup on "D:\myWorks\BatchBackup\test_20191221.7z"...
7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21
Open archive: D:\myWorks\BatchBackup\test_20191221.7z
--
Path = D:\myWorks\BatchBackup\test_20191221.7z
Type = 7z
Physical Size = 288
Headers Size = 256
Method = LZMA2:12 7zAES
Solid = +
Blocks = 1
Scanning the drive:
2 folders, 8 files, 60 bytes (1 KiB)
Creating archive: D:\myWorks\BatchBackup\test_20191221_diff_20191221_103651.7z
Add new data to archive: 2 folders, 4 files, 38 bytes (1 KiB)
2 anti-files
Files read from disk: 4
Archive size: 308 bytes (1 KiB)
Everything is Ok
.
..."D:\myWorks\BatchBackup\test_20191221_diff_20191221_103651.7z"...done!
D:\myWorks\BatchBackup>
用工作排程器,建立備份計畫:
Windows系統管理工具→工作排程器
備份計畫舉例:
- 每月1日,上午06:00,執行一次完整備份。
- 每日上午07:00起,每隔2小時執行一次差異備份。
以下是另一個實際設定工作排程的實例:
- 一般頁籤:
- 觸發程序頁籤:
執行週期的設定:
每天。
重複工作每隔:2小時。(先選取1小時,再把1改為2)
持續時間為:不限制。(這樣這個排程就可以一直循環執行下去)
- 動作頁籤:
選取程式的所在位置。
新增引數。(執行程式所需的參數,這個備份程式,可以指定參數為FULL或DIFF)
每一次的差異備份,都是一所取得的完整備份為基礎,進行備份,所以一段時間後可以、也必須刪除一些多於不需要的差異備份。
如果每次的差異備份檔案都很大,那就要考慮重新建立完整備份,或調整建立完整備份的策略了。
沒有留言:
張貼留言