1. 程式人生 > >通過批處理文件使用7zip執行備份,將1日和15日的備份再另外備份,定時清理過期備份

通過批處理文件使用7zip執行備份,將1日和15日的備份再另外備份,定時清理過期備份

命令行備份 命令行清理 Batch File 批處理文件 批處理備份

7z.exe是個好東東,N多年前,當時試用了各種命令行壓縮軟件,效果都不怎麽樣,那時7zip出來不久,發現它也有命令行模式,然後試用一下,發現可用性很好,壓縮率、效率也很不錯。當時試用過winrar和rar,效果都不太好。

C:\7-Zip\7z.exe a -sdel "E:\Backup\Zip_%date:~0,4%_%date:~5,2%_%date:~8,2%.7z" "E:\Backup\%date:~0,4%_%date:~5,2%_%date:~8,2%.dmp" "E:\Backup\%date:~0,4%_%date:~5,2%_%date:~8,2%.log"

for /F "delims=" %%i in (‘wmic path Win32_LocalTime get day /value^|find "="‘) do set /a %%i
if %day%==2 (
   copy E:\Backup\Zip_%date:~0,4%_%date:~5,2%_01.7z E:\Backup_1stDayOfMonth)
if %day%==16 (
   copy E:\Backup\Zip_%date:~0,4%_%date:~5,2%_15.7z E:\Backup_1stDayOfMonth)

forfiles /p "E:\Backup\" /m *.7z -d -30 /c "cmd /c del /f @path"

熟悉Oracle的朋友應該可以看出來,這是Oracle的dump和log文件壓縮。expdp導出dump很方便,缺點就是這玩意超級的大,使用7zip壓縮一下後,容量可以縮減至原來的百分之五左右。
7z的參數,可以自己看一下,這裏就介紹我命令行裏用到的兩個參數
a:壓縮
-sdel:壓縮完成後,刪除源文件。對於dump這種大文件,備份完就刪,這個參數很實用。
第一個路徑:含路徑的壓縮文件名
第二、第三個路徑:兩個需要壓縮的文件名。如果還有第四第五等等,接著寫即可。

%date:~0,4%%date:~5,2%%date:~8,2%是命令行下的日期,我在年月日中間加了下劃線,2018_01_01這樣子

第二段,是讀取系統日期,判斷如果日期是2,則將1日的備份復制到另一個目錄,作為長期存儲用。

第三段,清理備份目錄中過期文件,-d代表天,30代表30天前,自己根據需要來

通過批處理文件使用7zip執行備份,將1日和15日的備份再另外備份,定時清理過期備份