PCZONE 討論區

PCZONE 討論區 (https://www.pczone.com.tw/vbb3/)
-   -- 其 他 軟 體 討 論 版 (https://www.pczone.com.tw/vbb3/forum/8/)
-   -   【教學】利用 WinRAR 定期備份資料 (https://www.pczone.com.tw/vbb3/thread/8/93425/)

bx2aa 2010-12-09 06:49 PM

回覆: 【教學】利用 WinRAR 定期備份資料
 
[QUOTE=etsinz;1099104]謝謝大大的說明,我這資料庫每天都會產生一個備份檔,請問有沒有辦法設定只縮壓備份檔,不需要縮壓整個目錄,請看以下圖示:

1. 我sql一共設定五個資料庫,所以會產生五個目錄,而每個目錄每天會產生一個bak檔,我需要做的備份是把每日產生的備份檔備份起來,並不需要把整個目錄備份起來。(每日所產生的備份檔的檔案,都會依時間排序來命名)

2. 用自動壓縮程式是否有辦法把產生出來的rar檔存放在每個相同的目錄下(因為我備份軟體已經設定好需備份的目錄),是否有辦法不用利用手動的方式去點擊任何的程式,就只要設定一次之後就可以一直讓程式自動連續運作。

[IMG]http://xmages.net/storage/10/1/0/e/c/upload/eb876e06.jpg[/IMG][/QUOTE]
before.bat 和 Aafter.bat 還是要查外層, 不然就事先查最後產生的備份.
check.bat :start 上面加
:check
sleep
if exist E:\TransactionLogbackup\Diff_bak\gonghsi\gonghsi_tlog_%date:~0,4%%date:~5,2%%date:~8,2%*.bak goto start
if not exist E:\TransactionLogbackup\Diff_bak\gonghsi\gonghsi_tlog_%date:~0,4%%date:~5,2%%date:~8,2%*.bak goto check
[COLOR="Red"]:start[/COLOR]
之後是原來 check.bat :start 後面的內容

dir E:\TransactionLogbackup\Diff_bak\gonghsi | findstr "個檔案" > before.txt
dir E:\TransactionLogbackup\Diff_bak\gonghsi | findstr "個檔案" > after.txt
備份用以下請自行去修改

backup.bat (紅字就是要放哪裡!)
dir /s /b /a-d r E:\TransactionLogbackup\Diff_bak\CHIComp01\CHIComp01_tlog_%date:~0,4%%date:~5,2%%date:~8,2%*.bak >list.txt
dir /s /b /a-d r E:\TransactionLogbackup\Diff_bak\CHIXMSys\CHIXMSys_tlog_%date:~0,4%%date:~5,2%%date:~8,2%*.bak >>list.txt
dir /s /b /a-d r E:\TransactionLogbackup\Diff_bak\dingxin\dingxin_tlog_%date:~0,4%%date:~5,2%%date:~8,2%*.bak >>list.txt
dir /s /b /a-d r E:\TransactionLogbackup\Diff_bak\excel\excel_tlog_%date:~0,4%%date:~5,2%%date:~8,2%*.bak >>list.txt
dir /s /b /a-d r E:\TransactionLogbackup\Diff_bak\gongshi\gongshi_tlog_%date:~0,4%%date:~5,2%%date:~8,2%*.bak >>list.txt
"%ProgramFiles%\WinRAR\rar" a -r -y -o+ -m5 [COLOR="Red"]E:\Backup\SQL.rar [/COLOR] @list.txt

但是日期格式要依你的系統格式調整, 如果沒動過那就不用
echo %date%
2010/12/09 星期四
0123456789
%date:~0,4%%
從0取4
2010

%date:~5,2%
從5取2
12

%date:~8,2%
從8取2
09

要自動執行控制台排定工作 排程精靈 或是
at /help
task scheduler 服務要開

不過 check.bat 還有一些問題
例如超過一天沒有找到檔案, 把自己退出

改為
:check
sleep

之間加兩行
:check
if %x% gtr 1440 exit
set /A x=%x%+1
sleep

etsinz 2010-12-10 05:55 PM

回覆: 【教學】利用 WinRAR 定期備份資料
 
[QUOTE=bx2aa;1099116]before.bat 和 Aafter.bat 還是要查外層, 不然就事先查最後產生的備份.
check.bat :start 上面加
:check
sleep
if exist E:\TransactionLogbackup\Diff_bak\gonghsi\gonghsi_tlog_%date:~0,4%%date:~5,2%%date:~8,2%*.bak goto start
if not exist E:\TransactionLogbackup\Diff_bak\gonghsi\gonghsi_tlog_%date:~0,4%%date:~5,2%%date:~8,2%*.bak goto check
[COLOR="Red"]:start[/COLOR]
之後是原來 check.bat :start 後面的內容

dir E:\TransactionLogbackup\Diff_bak\gonghsi | findstr "個檔案" > before.txt
dir E:\TransactionLogbackup\Diff_bak\gonghsi | findstr "個檔案" > after.txt
備份用以下請自行去修改

backup.bat (紅字就是要放哪裡!)
dir /s /b /a-d r E:\TransactionLogbackup\Diff_bak\CHIComp01\CHIComp01_tlog_%date:~0,4%%date:~5,2%%date:~8,2%*.bak >list.txt
dir /s /b /a-d r E:\TransactionLogbackup\Diff_bak\CHIXMSys\CHIXMSys_tlog_%date:~0,4%%date:~5,2%%date:~8,2%*.bak >>list.txt
dir /s /b /a-d r E:\TransactionLogbackup\Diff_bak\dingxin\dingxin_tlog_%date:~0,4%%date:~5,2%%date:~8,2%*.bak >>list.txt
dir /s /b /a-d r E:\TransactionLogbackup\Diff_bak\excel\excel_tlog_%date:~0,4%%date:~5,2%%date:~8,2%*.bak >>list.txt
dir /s /b /a-d r E:\TransactionLogbackup\Diff_bak\gongshi\gongshi_tlog_%date:~0,4%%date:~5,2%%date:~8,2%*.bak >>list.txt
"%ProgramFiles%\WinRAR\rar" a -r -y -o+ -m5 [COLOR="Red"]E:\Backup\SQL.rar [/COLOR] @list.txt

但是日期格式要依你的系統格式調整, 如果沒動過那就不用
echo %date%
2010/12/09 星期四
0123456789
%date:~0,4%%
從0取4
2010

%date:~5,2%
從5取2
12

%date:~8,2%
從8取2
09

要自動執行控制台排定工作 排程精靈 或是
at /help
task scheduler 服務要開

不過 check.bat 還有一些問題
例如超過一天沒有找到檔案, 把自己退出

改為
:check
sleep

之間加兩行
:check
if %x% gtr 1440 exit
set /A x=%x%+1
sleep[/QUOTE]



大大你好,謝謝大大的指教,如果直接把backup.bat 做自動排程可以嗎?
因為我測試了一下,直接點backup.bat 是可以運作的。
以下是我做修改的程式
dir /s /b /a-d E:\TransactionLogbackup\Com_bak\CHIComp01\CHIComp01_db_%date:~0,4%%date:~5,2%%date:~8,2%2130.BAK >list.txt
dir /s /b /a-d E:\TransactionLogbackup\Com_bak\CHIXMSys\CHIXMSys_db_%date:~0,4%%date:~5,2%%date:~8,2%2130.BAK >>list.txt
dir /s /b /a-d E:\TransactionLogbackup\Com_bak\dingxin\dingxin_db_%date:~0,4%%date:~5,2%%date:~8,2%2130.BAK >>list.txt
dir /s /b /a-d E:\TransactionLogbackup\Com_bak\excel\excel_db_%date:~0,4%%date:~5,2%%date:~8,2%2130.BAK >>list.txt
dir /s /b /a-d E:\TransactionLogbackup\Com_bak\gongshi\gongshi_db_%date:~0,4%%date:~5,2%%date:~8,2%2130.BAK >>list.txt
"%ProgramFiles%\WinRAR\rar" a -r -y -o+ -m5 E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar @list.txt

[IMG]http://xmages.net/storage/10/1/0/4/0/upload/9fa30d31.jpg[/IMG]

現在遇到的問題是 我每次產生出的檔案會是如:dingxin_db_[COLOR="Red"]201012102130[/COLOR]
就是2010年12月10號21點30分 如上圖 有時的檔名會是
dingxin_db_20101211[COLOR="Red"]2131[/COLOR]
dingxin_db_20101212[COLOR="Red"]2132[/COLOR]
dingxin_db_20101213[COLOR="Red"]2133[/COLOR]
之類的
像這樣子,如果我要把它的"分鐘"也自動備份的話,參數該如何下呢?
我看了一下你的程式碼好像只有"年、月、日"而已。

ps.我這個完整備份是大約三周會做一次,所以每次檔案都是三周產生一次出來。

bx2aa 2010-12-10 09:02 PM

回覆: 【教學】利用 WinRAR 定期備份資料
 
[QUOTE=etsinz;1099208]大大你好,謝謝大大的指教,如果直接把backup.bat 做自動排程可以嗎?
因為我測試了一下,直接點backup.bat 是可以運作的。
以下是我做修改的程式
dir /s /b /a-d E:\TransactionLogbackup\Com_bak\CHIComp01\CHIComp01_db_%date:~0,4%%date:~5,2%%date:~8,2%2130.BAK >list.txt
dir /s /b /a-d E:\TransactionLogbackup\Com_bak\CHIXMSys\CHIXMSys_db_%date:~0,4%%date:~5,2%%date:~8,2%2130.BAK >>list.txt
dir /s /b /a-d E:\TransactionLogbackup\Com_bak\dingxin\dingxin_db_%date:~0,4%%date:~5,2%%date:~8,2%2130.BAK >>list.txt
dir /s /b /a-d E:\TransactionLogbackup\Com_bak\excel\excel_db_%date:~0,4%%date:~5,2%%date:~8,2%2130.BAK >>list.txt
dir /s /b /a-d E:\TransactionLogbackup\Com_bak\gongshi\gongshi_db_%date:~0,4%%date:~5,2%%date:~8,2%2130.BAK >>list.txt
"%ProgramFiles%\WinRAR\rar" a -r -y -o+ -m5 E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar @list.txt

現在遇到的問題是 我每次產生出的檔案會是如:dingxin_db_[COLOR="Red"]201012102130[/COLOR]
就是2010年12月10號21點30分 如上圖 有時的檔名會是
dingxin_db_20101211[COLOR="Red"]2131[/COLOR]
dingxin_db_20101212[COLOR="Red"]2132[/COLOR]
dingxin_db_20101213[COLOR="Red"]2133[/COLOR]
之類的
像這樣子,如果我要把它的"分鐘"也自動備份的話,參數該如何下呢?
我看了一下你的程式碼好像只有"年、月、日"而已。

ps.我這個完整備份是大約三周會做一次,所以每次檔案都是三周產生一次出來。[/QUOTE]
直接用 backup.bat 也可以!
check.bat after.bat before.bat 是為了確認在備份時不會發生 SQL 維護精靈還沒備份結束.

我原本用的
dir /s /b /a-d E:\TransactionLogbackup\Diff_bak\gongshi\gongshi_tlog_%date:~0,4%%date:~5,2%%date:~8,2%*.bak >>list.txt
是日期只要對、後面的不管是多少都照樣備份, 請打開 list.txt 就知道!
list.txt 就是要備份的檔案列表.

dir.....*.bak 把檔案含路徑輸出
> 轉向覆蓋 list.txt
>> 附加到 list.txt
所以結果就在 list.txt

dir /s /b /a-d E:\RSS\ps\com\gongshi\dingxin_db_%date:~0,4%%date:~5,2%%date:~8,2%*.bak >>list.txt

etsinz 2010-12-13 11:22 AM

回覆: 【教學】利用 WinRAR 定期備份資料
 
[QUOTE=bx2aa;1099213]直接用 backup.bat 也可以!
check.bat after.bat before.bat 是為了確認在備份時不會發生 SQL 維護精靈還沒備份結束.

我原本用的
dir /s /b /a-d E:\TransactionLogbackup\Diff_bak\gongshi\gongshi_tlog_%date:~0,4%%date:~5,2%%date:~8,2%*.bak >>list.txt
是日期只要對、後面的不管是多少都照樣備份, 請打開 list.txt 就知道!
list.txt 就是要備份的檔案列表.

dir.....*.bak 把檔案含路徑輸出
> 轉向覆蓋 list.txt
>> 附加到 list.txt
所以結果就在 list.txt

dir /s /b /a-d E:\RSS\ps\com\gongshi\dingxin_db_%date:~0,4%%date:~5,2%%date:~8,2%*.bak >>list.txt[/QUOTE]


謝謝大大的說明,目前測試正常,非常感謝大大

另請問大大dir /s /b /a-d [COLOR="Red"]r[/COLOR] 的r 意思是什麼

假設我設有五個目錄需備份,是不是我該備份的地方就一定要設有五個目錄,不然程式是否會找不到?然後不動作呢?

請問有辦法另外設定自動排程,把做出來的備份壓縮檔,在一定的時間內清掉檔案嗎,就像在sql資料庫裡可以設定一樣,如:只保留幾周最新的備份檔之類的。(因我怕久而久之放太多備份檔,會浪費本機hdd容量,因我已做異地備份,把檔案備份到b地了,所以放在本機的檔案我想只需保留幾周就ok了。)

bx2aa 2010-12-13 05:20 PM

回覆: 【教學】利用 WinRAR 定期備份資料
 
[QUOTE=etsinz;1099275]謝謝大大的說明,目前測試正常,非常感謝大大

另請問大大dir /s /b /a-d [COLOR="Red"]r[/COLOR] 的r 意思是什麼

假設我設有五個目錄需備份,是不是我該備份的地方就一定要設有五個目錄,不然程式是否會找不到?然後不動作呢?

請問有辦法另外設定自動排程,把做出來的備份壓縮檔,在一定的時間內清掉檔案嗎,就像在sql資料庫裡可以設定一樣,如:只保留幾周最新的備份檔之類的。(因我怕久而久之放太多備份檔,會浪費本機hdd容量,因我已做異地備份,把檔案備份到b地了,所以放在本機的檔案我想只需保留幾周就ok了。)[/QUOTE]

r 是不小心按到的吧!

List.txt 是備份內容 只要有確切路徑檔名就會備份.

dir /s /b /a-d E:\RSS\ps\com\gongshi\*%date:~0,4%%date:~5,2%%date:~8,2%*.bak >>list.txt

就會把 E:\RSS\ps\com\gongshi\ 目錄下的所有目錄內檔名中含有當天年月日的所有 .bak 通通列入備份的列表中.

"%ProgramFiles%\WinRAR\rar" a -r -y -o+ -m5 E:\TransactionLogbackup\114_comrar\[COLOR="Red"]114com%date:~0,4%%date:~5,2%%date:~8,2%.rar[/COLOR] @list.txt

在最後一行中加入例如:
"%ProgramFiles%\WinRAR\rar" a -r -y -o+ -m5 E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar @list.txt

if %date:~5,2% LEQ 3 echo del E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar >> 1-3month.bat
if %date:~5,2% GEQ 4 if %date:~5,2% LEQ 6 echo del E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar >> 4-6month.bat
if %date:~5,2% GEQ 7 if %date:~5,2% LEQ 9 echo del E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar >> 7-9month.bat
if %date:~5,2% GEQ 10 if %date:~5,2% LEQ 12 echo del E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar >> 10-12month.bat

每年開春手動刪除
1-3month.bat
4-6month.bat
7-9month.bat
10-12month.bat
或是年初多設定一個排程
delete.bat
=============
del 1-3month.bat
del 4-6month.bat
del 7-9month.bat
del 10-12month.bat
=============
或是每次都跑一次 echo del 1-3month.bat >> ??month.bat

上面改為

if %date:~5,2% LEQ 3 echo del E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar >> 1-3month.bat && echo del 10-12month.bat >> 1-3month.bat
if %date:~5,2% GEQ 4 if %date:~5,2% LEQ 6 echo del E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar >> 4-6month.bat && echo del 1-3month.bat >> 4-6month.bat
if %date:~5,2% GEQ 7 if %date:~5,2% LEQ 9 echo del E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar >> 7-9month.bat && echo del 4-6month.bat >> 7-9month.bat
if %date:~5,2% GEQ 10 if %date:~5,2% LEQ 12 echo del E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar >> 10-12month.bat && echo del 7-9month.bat >> 10-12month.bat

跑過任何一季的 ?-?month.bat 會清掉上一季的批次檔

排程加入
1-3month.bat
4-6month.bat
7-9month.bat
10-12month.bat
各個檔案要跑的時間點即可!

etsinz 2010-12-15 03:34 PM

回覆: 【教學】利用 WinRAR 定期備份資料
 
[QUOTE=bx2aa;1099282]r 是不小心按到的吧!

List.txt 是備份內容 只要有確切路徑檔名就會備份.

dir /s /b /a-d E:\RSS\ps\com\gongshi\*%date:~0,4%%date:~5,2%%date:~8,2%*.bak >>list.txt

就會把 E:\RSS\ps\com\gongshi\ 目錄下的所有目錄內檔名中含有當天年月日的所有 .bak 通通列入備份的列表中.

"%ProgramFiles%\WinRAR\rar" a -r -y -o+ -m5 E:\TransactionLogbackup\114_comrar\[COLOR="Red"]114com%date:~0,4%%date:~5,2%%date:~8,2%.rar[/COLOR] @list.txt

在最後一行中加入例如:
"%ProgramFiles%\WinRAR\rar" a -r -y -o+ -m5 E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar @list.txt

if %date:~5,2% LEQ 3 echo del E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar >> 1-3month.bat
if %date:~5,2% GEQ 4 if %date:~5,2% LEQ 6 echo del E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar >> 4-6month.bat
if %date:~5,2% GEQ 7 if %date:~5,2% LEQ 9 echo del E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar >> 7-9month.bat
if %date:~5,2% GEQ 10 if %date:~5,2% LEQ 12 echo del E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar >> 10-12month.bat

每年開春手動刪除
1-3month.bat
4-6month.bat
7-9month.bat
10-12month.bat
或是年初多設定一個排程
delete.bat
=============
del 1-3month.bat
del 4-6month.bat
del 7-9month.bat
del 10-12month.bat
=============
或是每次都跑一次 echo del 1-3month.bat >> ??month.bat

上面改為

if %date:~5,2% LEQ 3 echo del E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar >> 1-3month.bat && echo del 10-12month.bat >> 1-3month.bat
if %date:~5,2% GEQ 4 if %date:~5,2% LEQ 6 echo del E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar >> 4-6month.bat && echo del 1-3month.bat >> 4-6month.bat
if %date:~5,2% GEQ 7 if %date:~5,2% LEQ 9 echo del E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar >> 7-9month.bat && echo del 4-6month.bat >> 7-9month.bat
if %date:~5,2% GEQ 10 if %date:~5,2% LEQ 12 echo del E:\TransactionLogbackup\114_comrar\114com%date:~0,4%%date:~5,2%%date:~8,2%.rar >> 10-12month.bat && echo del 7-9month.bat >> 10-12month.bat

跑過任何一季的 ?-?month.bat 會清掉上一季的批次檔

排程加入
1-3month.bat
4-6month.bat
7-9month.bat
10-12month.bat
各個檔案要跑的時間點即可![/QUOTE]



謝謝大大辛苦說明,感謝您為小弟解決壓縮備份問題,非常感謝,請問大大是否可以留個msn聯絡方式,小弟改日若有其它問題,方可請教大大您。

bx2aa 2010-12-18 05:16 PM

回覆: 【教學】利用 WinRAR 定期備份資料
 
[QUOTE=etsinz;1099335]謝謝大大辛苦說明,感謝您為小弟解決壓縮備份問題,非常感謝,請問大大是否可以留個msn聯絡方式,小弟改日若有其它問題,方可請教大大您。[/QUOTE]

平時都沒開 MSN 開機時就關掉, 除非很久沒下載微軟網路廣播, 才偶而登入一次.
上一次用好像是一、二年前吧!

有問題發帖發問, 若其他人會, 應該很樂意回答!

etsinz 2010-12-20 08:59 AM

回覆: 【教學】利用 WinRAR 定期備份資料
 
[QUOTE=bx2aa;1099474]平時都沒開 MSN 開機時就關掉, 除非很久沒下載微軟網路廣播, 才偶而登入一次.
上一次用好像是一、二年前吧!

有問題發帖發問, 若其他人會, 應該很樂意回答![/QUOTE]

了解,謝謝,另詢問大大,你會用cms架站嗎?

bx2aa 2010-12-20 01:46 PM

回覆: 【教學】利用 WinRAR 定期備份資料
 
[QUOTE=etsinz;1099532]了解,謝謝,另詢問大大,你會用cms架站嗎?[/QUOTE]

以前有人發過 Joomla 我接著回 Joomla phpBB MySQL 全自動安裝, 那個算CMS嗎?
從空機 "開電源" "放光碟", 全自動安裝到好, 我算會裝嗎? 因為我都沒動一個按鍵和滑鼠, 全自動的, 除了分割硬碟外!

現在討論的內容和 WinRAR 和定期備份沒關了!

etsinz 2010-12-21 01:12 PM

回覆: 【教學】利用 WinRAR 定期備份資料
 
[QUOTE=bx2aa;1099541]以前有人發過 Joomla 我接著回 Joomla phpBB MySQL 全自動安裝, 那個算CMS嗎?
從空機 "開電源" "放光碟", 全自動安裝到好, 我算會裝嗎? 因為我都沒動一個按鍵和滑鼠, 全自動的, 除了分割硬碟外!

現在討論的內容和 WinRAR 和定期備份沒關了![/QUOTE]

是的,我只是剛好想到有關這方便問題,順便請問一下而已。


所有時間均為 +8。現在的時間是 01:33 PM



 XML   RSS 2.0   RSS 
本站使用 vBulletin 合法版權程式
站務信箱 : [email protected]

本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。