2009/05/23

Published 5月 23, 2009 by with 0 comment

自動刪除過期備份檔(Autodelete Expired BAK Files)

目標:自動清除超過五天以上的備份檔案


1.LINUX:利用基本指令(進階)就能達成。
2.WINDOWS(非SERVER版):需撰寫批次檔才能完成。超麻煩…


一、將主機的重資料壓縮。並將檔案加上日期。
#設定日期變數day
day=`date +%Y-%m-%d`



#設定basedir路徑,也就是/back/backup/weekly這個資料夾。
basedir="/back/backup/weekly"

#將複製好的所有檔案打包並壓縮。
cd $basedir
tar -zpcf sys_backup_weekly."$day".tar.gz * --exclude sys_backup_weekly."$day".tar.gz


二、我要改成自動刪除一個月前的備份檔案。
以刪除每日備份的例子,將數字改成你要的天數就可以了。
date10=`date --date='10 days ago' +%Y-%m-%d`
rm -rf /back/backup/daily/mysql."$date10".tar.gz

修改成
date30=`date --date='30 days ago' +%Y-%m-%d`
rm -rf /back/backup/daily/mysql."$date30".tar.gz


 


三、使用系統時間,刪除n天前的資料:


採用的LINUX指令就是find就可以了,因為在LINUX下的find就可以針對檔案的日期來做尋找及篩選,同時把結果拋到後面的指令來處理。

說穿了,如果是透過LINUX的指令的話...只要一條指令就可以自動刪除五天前舊的備份檔案,指令如下:



find /backup/ -mtime +5 -exec rm -rf{} \;


find ./ -ctime +11 -type f -name "*" -exec rm -f {} \;




說明:
(1)find /backup/:搜尋資料夾(/backup/)。
(2)-mtime +3:三天內未變動過的檔案。
(3)-exec command {} \;:執行指令(command)和結束(\;)。
(4)rm -rf {}:強制刪除find所搜尋到的檔案。


OR



find /backup/ -mtime +5 -type f | xargs -i rm {};



Windows備份:


rem ------ [完整備份] 將網站資料備份到 以 日期為目錄名稱 的目錄中 --------------------------------------------------------
rem xcopy c:\inetpub D:\Backup\%date:~0,4%%date:~5,2%%date:~8,2% /h /i /s /k /o /y >> D:\Backup\log\%date:~0,4%%date:~5,2%%date:~8,2%.log


rem ------ [差異備份] 備份檔案 到 File Server 的個人備份區
XCOPY D:\CustomEmoticons Z:\CustomEmoticons\ /D /H /I /S /Y


rem ----- XCOPY 用法 可用 "XCOPY /?" 查詢 ---------------------------------------------
rem XCOPY 差異備份常用參數
rem /D:m-d-y 複製在指定日期當天或之後發生變更的檔案。如果沒有給日期,只複製那些來源檔案日期比目的檔案日期為新的檔案。
rem /H 時複製隱藏檔和系統檔。
rem /I 如果目的不存在且複製一個以上的檔案的話,就假設指定的目的一定是目錄。
rem /S 複製每個目錄及其包含的子目錄,不複製空目錄。
rem /E 複製每個目錄及其包含的子目錄,含複製空目錄。/S 與 /E 相同,能夠用來修改 /T。
rem /Y 不要提示您確定是否要覆蓋一個已經存在的檔案。


 


其檔名設定格式如下:
假設現在的時間是 2005年10月29日

2005 / 10 / 29 //系統日期
0123 4 56 7 89 //代表數字由0開始

%date:~0,4% =2005 //0,4即從數字第0位開始抓4個數字
%date:~5,2% =10 //5,2即從數字5開始抓2個數字
%date:~8,2% =15 //8,2即從數字8開始抓2個數字


C:\Documents and Settings\sidney>time
現在時間是: 13:37:59.01

%time:~0,2%=13
%time:~3,2%=37
%time:~6,2%=59



所以%date:~0,4%_%date:~5,2%_%date:~8,2%-backup.rar 就會等於2005_10_29-backup.rar


rar a -r -y  c.rar a b >>log-%date:~4,14%.txt      #把文件夾a,b打包成c.rar.並把打包文件列表輸出到日誌文件
rar a -r -y  %date:~4,14%.rar  c.rar log-%date:~4,14%.txt    #把c.rar和日誌文件再打包成以日期命名的rar包
del /F /Q FSS(MJC)_CVS.rar log-%date:~4,14%.txt    #刪除c.rar和日誌文件
FTP  -s:ftp.txt 192.168.0.2    #ftp登錄到主機192.168.0.2,調用ftp.txt與ftp交互命令,ftp.txt內容見下。
del /F /Q %date:~4,14%.rar    #上傳成功後刪除



other example:


備份.bat
c:\rar.exe a -r -m0 d:\backup\temp.rar C:\Documents and Settings

還原.bat
c:\rar.exe x -o+ d:\backup\temp.rar c:\


資料來源:http://mkbfb.blogspot.com/2008/02/linux-centosfedoraubuntu-xampp.html


Read More