iT邦幫忙

0

定期備份檔案如何作?

leo226 2010-08-27 16:37:2014772 瀏覽

我想定期備份A Server的D:\DIRA\A.txt,備份到B Server的D:\DIRB\Bdata.txt。
這樣的做法要如何作呢?可以指導比較詳細的操作步驟嗎,這方面不懂=,=
感謝各位大大!

6
sailsolitary
iT邦研究生 2 級 ‧ 2010-08-30 10:02:31
最佳解答

環境是怎樣的?兩台在同的地方嗎?相同的網段, 還是不同地方?
相同的地方, 就簡單一點, 只要一個開分享, 一個用排程去複製出來就好了, 方法有很多, 大部份都直接用批次檔就搞定了.

如果不同地方, 那可能就考慮用個共同的空間來存放, 由ServerA上傳, 由ServerB下載.

範例一、相同地方又相同網段
ServerA 將 D:\DIRA\ 開分享, 權限要設定讓 ServerB 的帳號可以讀取...
ServerB 設定排程, 執行以下批次檔內容...

<pre class="c" name="code">
@Echo off
Net Use \\ServerA\DirA /user:帳號 密碼
Copy \\ServerA\DirA\A.txt D:\DIRB\Bdata.txt
Net Use \\ServerA\DirA /delete

範例二、不同地方或是不同網段
ServerA 使用 FTP 定時上傳到某個資料夾, 或是開啟 FTP 連線服務
ServerB 使用 FTP 定時下載資料夾內容並刪除..

  1. 由 ServerA 定時上傳到某FTP的方式, ServerA 排程執行以下批次檔...

    <pre class="c" name="code">
    @Echo off
    Set FTPSrv=192.168.0.1
    Echo 帳號 > Update.cmd
    Echo 密碼 >>Update.cmd
    Echo cd 目錄名稱 >>Update.cmd
    Echo mput A.txt >>Update.cmd
    Echo bye >>Update.cmd
    Ftp -n -v -i %FTPSrv% < Update.cmd
    Del Ftp.cmd

  2. 由 ServerB 定時下載的方式, ServerB 排程執行以下批次檔...

    <pre class="c" name="code">
    @Echo
    Set FPTSrv=192.168.0.1
    Echo 帳號 > FTPDownload.cmd
    Echo 密碼 >> FTPDownload.cmd
    Echo cd 目錄名稱 >> FTPDownload.cmd
    Echo mget A.txt >> FTPDownload.cmd
    Echo delete A.txt >> FTPDownload.cmd (選用)
    Echo bye >> FTPDownload.cmd
    Ftp -n -v -i %FTPSrv% < FTPDownload.cmd
    Del FTPDownload.cmd

如果是由 ServerA 開FTP的話, 那 ServerA 就不用執行, 只要ServerB跑就可以了..

看更多先前的回應...收起先前的回應...
leo226 iT邦新手 5 級 ‧ 2010-08-30 12:00:45 檢舉

環境是在同一個區域網路,不同網段,不同地方。
請問備份過去B server的檔案,批次檔要如何編寫檔名可以自動編號備份的日期?
設定排程時,直接將路徑指向批次檔的位置就好了嗎?需要再額外加參數或指令嗎?
謝謝指導!

leo226 iT邦新手 5 級 ‧ 2010-08-30 12:19:11 檢舉

發現DirA由有大概7個檔案要備過去DirB,所以我應該修改批次檔如下就可以全備過去了吧!
Copy \\ServerA\DirA\ D:\DIRB\
可以在DIRB下自動建立備份日期的資料夾嗎?如:
mkdir D:\DIRB\%date%
Copy \\ServerA\DirA\ D:\DIRB\%date%\
這樣對嗎?

sailsolitary iT邦研究生 2 級 ‧ 2010-08-31 09:29:28 檢舉

A1, 如果要全部複製的話, 建議用

&lt;pre class="c" name="code">XCopy \\ServerA\DirA\*.* \\ServerB\DirB\ /SVYQ (S = 目錄, V = 新檔, Y = 同意複蓋, Q = 不顯示過程)

A2, 如果要建立日期資料夾的話, 因為直接使用 %date% 會出現
<pre class="c" name="code"> 2010/08/31 星期二

這樣是沒有辦法建立目錄的, 因為目錄不能含 / 的符號, 所以要使用 For 的指令去縮短, 以下是範例[code]
For /F "tokens=1-3 delims=/ " %%a in ('Date /t') do (Set Date=%%a%%b%%c)
Mkdir D:\DirB\%Date%
XCopy \\ServerA\DirA\*.* D:\DirB\%Date%\ /SVYQ

leo226 iT邦新手 5 級 ‧ 2010-09-06 12:05:22 檢舉

已修改以上批次檔存成DRBK.cmd檔,置於d:\vertias\DR.cmd目錄下。
於排程設定如圖
可是它好像沒有自動執行的動作,請問還有什麼參數需要設定讓它自動執行嗎?

sailsolitary iT邦研究生 2 級 ‧ 2010-09-06 17:47:10 檢舉

其實 Server 的排程, 有時候就是會有透逗的情形, 原因我也不太清楚, 但如果要確定排程執行時, 有沒有正常運作, 可以直接在排程上點滑鼠兩下, 強迫它執行, 看看有沒有出現您所預期的效果, 至於排程怎麼沒有自動執行, 大部份都跟登入還有權限比較有關係.

sailsolitary iT邦研究生 2 級 ‧ 2010-09-06 17:48:50 檢舉

滑鼠兩下是開啟內容, 滑鼠右鍵, 執行..就會馬上跑排程, 看看是不是執行錯誤...

sailsolitary iT邦研究生 2 級 ‧ 2010-09-06 17:51:12 檢舉

如果執行完後, 沒有複製檔案的話, 那把指令改成

&lt;pre class="c" name="code">
For /F "tokens=1-3 delims=/ " %%a in ('Date /t') do (Set Date=%%a%%b%%c)
Mkdir D:\DirB\%Date%
Pause
XCopy \\ServerA\DirA\*.* D:\DirB\%Date%\ /SVYQ
Pause

查檢一下, 是哪邊出問題, 所以才會沒有複製成功.

leo226 iT邦新手 5 級 ‧ 2010-09-07 14:46:11 檢舉

直接執行cmd檔,和手動執行排程都可正常將檔案複製過去。
只是排程的時間內並沒有自動執行排程工作,登入權限都是管理者權限了。
如果這樣設定沒有什麼問題的話,我再觀察看看什麼問題好了。
謝謝!

leo226 iT邦新手 5 級 ‧ 2010-09-15 10:20:01 檢舉

windosw排程還是沒辦法自動執行呀,不知道問題出在那裡???

22
player
iT邦大師 1 級 ‧ 2010-08-27 19:57:39

寫批次檔, 在A Server用Windows工作排程吧? (B Server 要預先登入)
但是建議最好是用日期把備份的目錄分開
不然單一備份存檔的話
會有安全性的風險
A掛了, B備份的那一份也有可能是壞檔
單一備份的話
會可能無法挽救

有個類似的範例
以前網友給我的
是用批次檔定時用 winrar 壓縮備份
你可以參考看看拿去改

http://www.player.idv.tw/prog/index.php/Windows%E5%B7%A5%E4%BD%9C%E6%8E%92%E7%A8%8B

把 PathSrc 與 PathBackup 改掉
然後把最下面的 winrar 那行拿掉
其他的你自己試

16
shunyuan
iT邦研究生 1 級 ‧ 2010-08-28 10:47:57

設個鬧鐘,定時提醒你要備份資料。冷

sula3065408 iT邦研究生 1 級 ‧ 2010-08-30 10:17:31 檢舉

XD那可能要幾百個鬧鐘唷~然後事情做不完。

18
jay214
iT邦研究生 3 級 ‧ 2010-08-28 12:05:25
  1. 先將 SERVER B 的 DIRB 分享出來並設定分享名稱為 DIRB, UNC 路徑為 \\SERVERB\DIRB
  2. 在 SERVER A 上設定排程,語法如下
    Copy /y d:\DIRA\A.txt \\SERVERB\DIRB\Bdata.txt
caleb iT邦新手 4 級 ‧ 2010-08-29 00:36:15 檢舉

可先將B Server的D:\DIRB設定為SERVER A的network drive,這樣以後定期備份即可省略輸入帳號密碼的問題.

6
jackytsao
iT邦研究生 1 級 ‧ 2010-08-30 11:35:40

你可以考慮使用 Microsoft 出的免費程式 Microsoft SyncToy
它可設定自動化同步處理排程,全你排定的時間內完成相關工作
而且可依照你的需求來執行
同步化 (Sync)
回應 (Echo)
訂閱 (Subscribe)
貢獻 (Contribute)
結合 (Combine)
相關說明可參考
公用程式焦點: SyncToy
SyncToy v2.0
下載 SyncToy 2.1

6
小湯
iT邦研究生 5 級 ‧ 2010-08-30 16:49:01

用這個Tools吧---> Cobian Backup

也有Support FTP Site

http://www.educ.umu.se/~cobian/cobianbackup.htm

我要發表回答

立即登入回答