1. 問題:
(1)檔案每天新增或經常會產生多個新檔案時 ,會造成檔案數過多之雜亂現象
(2) 當檔案多或容量大時,沒有作壓縮歸檔處理,將發生浪費硬碟空間,儲存空間不足現象,影響系統效能
(3) 舊資料檔案沒有規劃好保存處理規則,將不易取回再利用
(4) 若檔案之壓縮作業,由人工手動處理時,將耗時且效率差
2. 改善:
(1) 欲作歸檔保存處理之多個檔案,將其檔案名稱等明細出力至txt file
(2)依上述txt檔案, 抓取這些檔案,進行壓縮處理,壓縮後產出一個壓縮檔案,如此便可作歸檔管理,並可節省硬碟使用空間
(3) 上述產出之壓縮檔,規劃作好保存管理,以便將來可容易取回利用,查看舊檔案資料
(4) 設計自動執行排程,以便將壓縮作業自動化,提升業務工作效率
3.方法:
3.1 依照使用者設定條件,自動選取欲作壓縮處理之對象檔案明細,取得後將這些欲作壓縮之檔案明細存入txt檔內
3.2 讀取上述明細txt檔,自動壓縮這些對象檔案,壓縮後,依照使用者之命名規則新出力作成一個新的壓縮檔,並保存於指定目錄。壓縮作業處理完成後,其結果會產生一個log檔,可供參考。
3.3 為實現自動執行,可新設計一個Windows工作排程,自動執行後,將結果自動寄出email 給擔當人員
4. 舉例說明:
4.0 考慮檔案名稱含有中文之編碼方式,需使用 UTF-8
Windows cmd 設計:
CHCP 65001
4.1 要被壓縮之檔案儲存在哪裡?
(1)欲壓縮處理之對象檔案,其路徑目錄如下:
E:\202205_N0094-Backup\2021_IT\DB_alert\incdir_112889
如下圖1說明
4.2 將上述目錄下之檔案名稱明細內容出力至txt檔內
(1) 出力之檔案明細txt檔,其路徑檔名如下:
D:\TEST\7z_source_file-list.txt,本例有四個檔案將被壓縮
(2) 如何選取將被壓縮之檔案明細,並新出力一個txt檔?
cmd 設計如下:
forfiles /P E:\202205_N0094-Backup\2021_IT\DB_alert\incdir_112889 /M *.* /c "cmd /c echo @path>>D:\TEST\7z_source_file-list.txt"
(3) 上述cmd行後,自動新出力一個txt檔,如下圖2 所示
4.3 壓縮作業處裡
(1)利用免費壓縮軟體7z 來處裡壓縮
(2)欲壓縮之來源檔案,由上述4.2 txt檔內取得
(3)來源檔案壓縮處理後,新產生一個壓縮7z檔,儲存至指定目錄內,並出力一個處理結果之log file
*新產生之壓縮檔,本例之檔名路徑:
D:\TEST_BK\compress_%date:~-10,4%%date:~-5,2%%date:~-2,2%.7z
本例壓縮檔檔名是依照日期自動取得檔名
*log file檔名路徑: D:\TEST\7z_log.txt
(4) 如何處理壓縮作業?
cmd 設計:
D:\LIN_Program_Files\7ZipPortable\App\7-Zip64\7z a -mx=3 D:\TEST_BK\compress_%date:~-10,4%%date:~-5,2%%date:~-2,2%.7z @D:\TEST\7z_source_file-list.txt > D:\TEST\7z_log.txt
(5) 上述cmd執行後,新出力之壓縮檔為compress_20231207.7z,將其展開後內含四個檔案,如下圖3 所示
(6)本例四個檔案壓縮前 86.9MB,壓縮後 6.8MB,節省80MB
4.4 壓縮處裡後,最後將4.2之明細txt 內容清除
* cmd 設計:
echo. >D:\HTW-IT\DB-7z\7z_source_file-list.txt
4.5 cmd處理時,出現如下錯誤訊息之對應
Command Line Error:
Incorrect item in listfile.
Check charset encoding and -scs switch.
==>修改方法:
(1) Windows cmd 輸入 CHCP 65001
(2)檔案明細file 7z_source_file-list.txt儲存時,編碼方式需 設為 UTF-8
5. 將來構想:
(1) 各系統舊資料檔案,如每日產出之資料備份檔,資料庫alert file,Windows system log 等等,這些檔案須要定期壓縮歸檔,移至別處儲存,或刪除,不然占用太多硬碟空間,將影響系統效能
(2) 當應用系統需要取回舊資料,作調查或測試之場合時,可以容易取得舊檔案
(3) 舊資料保留管理,可達成各系統之服務要求,並可提供稽查備詢
(4) 資料壓縮後,可以節省硬碟使用空間
(5) 可排定自動執行壓縮作業,不須人工作業,提升業務效率
----------------recorded by linct------------------