【教學】利用 WinRAR 定期備份資料

第 1 頁,共 3 頁 1 2 3 末頁末頁
顯示結果從第 1 筆 到 10 筆,共計 30 筆
  1. #1
    會員 Mohican 的大頭照
    註冊日期
    2001-09-05
    討論區文章
    51

    【教學】利用 WinRAR 定期備份資料

    現在常常到處跑來跑去,所以我將我工作的檔案都壓縮成一個檔案丟在網路上,
    哪邊找到有空的電腦,就馬上將檔案下載下來繼續工作,
    工作完,再利用 WinRAR 將檔案壓縮起來再傳回網路去。

    要利用 WinRAR 備份資料可以利用它的指令列模式,
    另外,可以將要備份的檔案列表先存成一個檔案 (比方說叫 list.txt 好了),
    再要求 WinRAR 將列表中的檔案全部壓縮起來。
    在 list.txt 這個檔案中,如果祇寫資料夾名稱,
    那麼 WinRAR 會將該資料夾底下的所有檔案壓縮起來;
    如果有明確指出檔案名稱,則祇會壓縮該檔案:

    引用 作者:list.txt 的內容
    D:\Yukie's Documents\QSR Projects\ =====> 壓縮 QSR Projects 資料夾下的所有檔案
    D:\Yukie's Documents\Password\Yukie.kwo =====> 壓縮 Yukie.kwo 這個檔案
    之後在 DOS 視窗下輸入底下的命令,
    比方說我的 WinRAR 安裝在 D:\Wintools\System~1\WinRAR\ 這個資料夾,
    我要將 list.txt 中的檔案列表都壓縮為 Z:\PackageHome.rar,
    我就可以下:

    引用 作者:WinRAR 的指令列模式
    D:\Wintools\System~1\WinRAR\WinRAR.exe u -r -ibck -inul -m5 -agYYYYMMDD
    -ta20040403 Z:\PackageHome.rar @D:\YUKIE'~1\list.txt
    (上述指令請輸入於同一行)
    其中:
    u:如果已經存在 Z:\PackageHome.rar,那麼檢視壓縮檔中有哪些檔案需要更新並更新它
    -r:如果要壓縮的是一個資料夾,那麼將該資料夾底下的所有資料夾也一併壓縮
    -ibck:壓縮時 WinRAR 在背景執行
    -inul:所有的錯誤訊息均不顯示
    -m5:以最大壓縮比進行壓縮
    -agYYYYMMDD:將檔名加上日期,方便分日貯存資料
    -ta20040403:祇壓縮 20040403 之後修改的檔案。
    @D:\YUKIE'~1\list.txt:引入要被壓縮的檔案列表
    (如果還想知道有哪些指令可以使用,請參考 WinRAR 的說明書)

    這樣子一來,我祇要一個指令就可以將我的檔案全部打包成一個壓縮檔,
    非常方便。

    WinRAR 還有一個方便的應用:
    隨著硬碟的加大,我們在使用上資料夾也越來越多,
    而且,資料夾中還有資料夾,有時深度可達十幾層。
    但這樣一來出現了一個問題,就是要將資料備份到光碟上時發現資料無法備份,
    因為光碟的 ISO9660 格式祇支援 8 層的資料夾,
    而且,檔案名稱不可超過 32 個字元,
    造成備份出來的光碟片一點用處也沒有,因為根本讀不到資料。

    比較簡單的解決辦法就是先將要備份的資料利用 WinZIP/WinRAR 壓成一個壓縮檔,
    再燒到光碟中就好了。

    缺點是,要將檔案解出來的時候比較花時間,
    尤其是壓縮檔有數百 MB 時,那時間花費的更多。
    但是至少能有效的將檔案備份起來。

    引用 作者:Yukie
    網路類:
    ncFtp:免費的指令列 FTP 程式,可用於 Windows/Linux/FreeBSD
    下載 ncftp
    既然將檔案壓縮起來了,那有沒有比較好的辦法將檔案傳到網路上?
    我想到的是,這個 ftp 程式必需支援:

    1. 有命令列模式,並且可以將登入 ftp Server 後要做的事寫成一個檔案自動執行,
      這樣我可以寫個簡單的批次檔將壓縮、上傳自動化。
    2. 支援被動傳輸模式,因為我常常在防火牆後工作,此時需要被動傳輸模式才能正常上、下傳檔案。
      Windows 內附的 ftp 程式雖然可以達到上一個條件,
      但因為不支援被動傳輸模式,所以不符合我的要求。
    3. 必需免費


    後來我發現平常在 Linux 底下最多人使用的 ncftp 就可以達成我的要求,
    他有 Windows 版本,內定使用被動傳輸模式,
    所以我現在就利用它來自動傳輸檔案。

    為了能夠自動登入 ftp server,
    我將 ftp server 的位址及我的帳號密碼都寫在 dnsljjh.log 這個檔案中,

    引用 作者:dnsljjh.log 內容
    host 168.95.1.1 ===> 紅色部份改為你要登入的 ftp server 位址
    user Yukie ===> 紅色部份改為你在該 ftp server 的帳號
    pass 12345678 ===> 紅色部份改為你在該 ftp server 的密碼
    將 ftp server 的相關資訊存成檔案後,就可以使用 ncftp 幫你傳檔案了,
    它的使用方式如下:

    引用 作者:ncFtp 使用方式
    D:\Winsock\ncFtp\ncftpput.exe -f D:\YUKIE'~1\dnsljjh.log ./www/webdisk/ Z:\PackageHome.rar
    (上述指令請輸入於同一行)
    指令說明:
    -f D:\YUKIE'~1\dnsljjh.log :叫入 dnsljjh.log 這個檔案,並登入該檔案記錄的 ftp server
    ./www/webdisk/:切換到 ftp server 的這個資料夾
    Z:\PackageHome.rar:將我的電腦的這個檔案放上 ftp server
    (詳細說明請看 ncftp 說明書)

    最後,既然 WinRAR 可以利用指令列模式壓縮檔案,
    ncftp 也可以用指令列傳輸檔案,
    那麼,這些指令寫成一個批次檔,就可以自動執行所有的工作了。
    我將上述指令寫成 upload.bat,
    然後拉一個捷徑放在桌面上,以後工作完,要將更新後的檔案壓縮、上傳至 ftp 的話,
    祇要點選桌面的 upload.bat 捷徑即可,十分方便。

    upload.bat 的內容如下:

    引用 作者:upload.bat 內容
    @Echo Off
    D:\Wintools\System~1\WinRAR\WinRAR.exe u -r -ibck -inul -m5 Z:\PackageHome.rar @D:\YUKIE'~1\list.txt
    D:\Winsock\ncFtp\ncftpput.exe -f D:\YUKIE'~1\dnsljjh.log ./www/webdisk/ Z:\PackageHome.rar
    D:\Winsock\ncFtp\ncftpput.exe -f D:\YUKIE'~1\student.log ./www/ Z:\PackageHome.rar ==> 再傳至另一個 ftp 以防萬一
    此後,我祇要工作到一個段落,我就點選桌面上的捷徑,
    電腦就會開始幫我壓縮檔案,並上傳至兩個 ftp server,
    在壓縮、上傳時,我可以去上個洗手間、喝個茶,
    回來後一切搞定!!

    很方便吧?大家可以試看看!!



  2. #2
    會員 Mohican 的大頭照
    註冊日期
    2001-09-05
    討論區文章
    51

    回覆: 【教學】利用 WinRAR 定期備份資料

    D:\Wintools\System~1\WinRAR\WinRAR.exe u -r -ibck -inul -m5 -agYYYYMMDD
    -ta20040403 Z:\PackageHome.rar @D:\YUKIE'~1\list.txt
    (上述指令請輸入於同一行)
    其中:
    u:如果已經存在 Z:\PackageHome.rar,那麼檢視壓縮檔中有哪些檔案需要更新並更新它
    -r:如果要壓縮的是一個資料夾,那麼將該資料夾底下的所有資料夾也一併壓縮
    -ibck:壓縮時 WinRAR 在背景執行
    -inul:所有的錯誤訊息均不顯示
    -m5:以最大壓縮比進行壓縮
    -agYYYYMMDD:將檔名加上日期,方便分日貯存資料
    -ta20040403:祇壓縮 20040403 之後修改的檔案。
    @D:\YUKIE'~1\list.txt:引入要被壓縮的檔案列表
    WinRAR 的 -ta 這個指令雖然看起來不是很方便,
    因為還要自己設定日期才能發生作用,
    但是祇要用其他程式配合一下就很方便了。

    我自己是使用 4DOS/4NT 配合 WinRAR 使用。
    4DOS/4NT 提供很多函數方便批次操作,我自己的批次檔如下:

    @Echo off

    set dd=%_date
    set dm=%@eval[%@date[%_date] -3]
    set dl=%@makedate[%dm]
    REM 利用 @date 取得自 1980-1-1 至今共有幾天
    REM 接著利用 @eval 將這個天數減掉 3
    REM 再將減掉後的天數轉回一般日期

    set dx=20%@instr[0,2,%dd]%@instr[3,2,%dd]%@instr[6,2,%dd]
    set dy=20%@instr[0,2,%dl]%@instr[3,2,%dl]%@instr[6,2,%dl]
    REM 利用 @instr 抽出日期文字
    REM 利用 @instr 抽出日期文字,但 4DOS 與 4NT 的日期欄位排列不同
    REM 4DOS 下使用 set dx=20%@instr[6,2,%dd]%@instr[0,2,%dd]%@instr[3,2,%dd]
    REM 4NT 下使用 set dx=20%@instr[0,2,%dd]%@instr[3,2,%dd]%@instr[6,2,%dd]

    del Z:\Anytime%dx.rar
    C:\Wintools\FILEUT~1\WinRAR\RAR.exe u -r -ibck -inul -m5 -agYYYYMMDD -ta%dy Z:\Anytime.rar @D:\YUKIE'~1\Packages.lst
    REM 利用 RAR 的 -ag 將檔案附加日期;利用 -ta 找出自 %dy 日期之後有修改的檔案

    C:\Winsock\ncFtp\ncftpput.exe -f D:\YUKIE'~1\dnsljjh.log . Z:\Anytime%dx.rar
    C:\Winsock\ncFtp\ncftpput.exe -f D:\YUKIE'~1\student.log . Z:\Anytime%dx.rar
    C:\Winsock\ncFtp\ncftpput.exe -f D:\YUKIE'~1\edu.log . Z:\Anytime%dx.rar

    Exit

  3. #3
    Take it easy~ leonchou 的大頭照
    註冊日期
    2001-05-03
    討論區文章
    3,244
    Good! 感謝教學
    我用過TaskZip、UltimateZip來做壓縮備份,
    只是還沒有上傳功能..現在看了有點心癢癢了
    但相較之下WinRAR沒有圖形介面的備份(?)有點可惜了.
    有幾個問題想請教:
    1.可自訂其他壓縮格式(如zip)? 因其他電腦相容問題.
    2.有可能上傳到網路硬碟嗎? 例如我慣用的Mail2000.
    3.承上, 若只能到FTP server, 一般人如何申請/使用?

  4. #4
    會員 Mohican 的大頭照
    註冊日期
    2001-09-05
    討論區文章
    51
    最初由 Leon Chou 發表
    Good! 感謝教學
    我用過TaskZip、UltimateZip來做壓縮備份,
    只是還沒有上傳功能..現在看了有點心癢癢了
    但相較之下WinRAR沒有圖形介面的備份(?)有點可惜了.
    有幾個問題想請教:
    1.可自訂其他壓縮格式(如zip)? 因其他電腦相容問題.
    2.有可能上傳到網路硬碟嗎? 例如我慣用的Mail2000.
    3.承上, 若只能到FTP server, 一般人如何申請/使用?
    WinRAR 有很漂亮的圖形介面,但是圖形介面的使用有其限制性,
    最大的限制就是無法像我上面所說的自動備份。
    所以我要用壓縮程式時,都要看看是否支援命令列模式,
    這樣才方便放在批次檔中自動執行。

    回答您的問題:
    • WinRAR 支援 ZIP 檔。但是以 RAR 檔壓縮的話,可以用 -rr 參數製作出有恢復記錄的壓縮檔,如果壓縮檔在傳輸的過程中有些微損毀,還可以試圖修復。而 Zip 檔就沒有辦法修復了。如果是為了解壓縮的問題,可以加上 -sfx 參數壓成自解壓縮檔,就不必擔心電腦上沒有安裝 WinRAR 無法解壓縮了。
    • 可以上傳到網路硬碟,因為網路硬碟其實也祇是 FTP 而已。我自己是安裝 OpenWebMail,發現 OpenWebMail 就是將每個人的家目錄底下建一個叫 webdisk 的資料夾當做網路硬碟,我猜 Mail2000 應該也是用相同的方法才對。但是要以 ftp 上傳至 Mail2000 的網路硬碟,就得看它是否有開放 Ftp 功能了。
    • ftp server 的話,要去找看看了。我上傳的 FTP 都是我自己的電腦,所以沒有帳號申請的問題……

  5. #5
    會員
    註冊日期
    2001-04-30
    討論區文章
    383
    Good~!!
    很棒的一篇教學~~
    重要資料一定要常常備份...
    謝謝你的分享~~
    我也來去試試看... ^^



  6. #6
    Take it easy~ leonchou 的大頭照
    註冊日期
    2001-05-03
    討論區文章
    3,244
    謝謝樓主的解答

  7. #7
    會員 Mohican 的大頭照
    註冊日期
    2001-09-05
    討論區文章
    51
    最初由 Leon Chou 發表
    3.承上, 若只能到FTP server, 一般人如何申請/使用?
    想到一件事,
    還可以用
    cdrecord + mkisofs + cygwin 自動燒錄,
    這樣子就算沒有 Ftp server,也能備份到光碟片上,
    讓資料有比較好的保護。

  8. #8
    Take it easy~ leonchou 的大頭照
    註冊日期
    2001-05-03
    討論區文章
    3,244
    最近總算有時間來玩這個,覺得WinRAR command line
    支援的參數超多,功能真是強~

    不過遇到一個瓶頸就是日常備份的日期檔名問題...
    我通常在晚上做備份,壓縮檔名為隔天的日期,
    例如 7/8 晚上備份為 0709a.zip (a = AM, 因為7/9早上要更新到別處)
    如果我是超過 7/8 24:00 做的 (也就是 7/9 凌晨),
    那麼使用 WinRAR 的 -agMMDD 就沒問題 (-ag參數會產生系統日期檔名),
    但如果我在 7/8 24:00 之前做的,怎麼辦呢?
    用 -ag 就會產生 0708a.zip 而蓋掉原先的 0708a.zip ~
    問題二,考量重覆做備份的情形,如果備份前要先刪除已存在的同名 zip,
    How? bat 要如何判斷出 0709a 這個檔名 (無論現在是 24:00 之前/之後) ?

    PS. 因為 WinRAR A ... 指令會把檔案加入已存在的同名 zip,所以要先刪除。
    如果改用 WinRAR U ... 又只會更新,不會新增檔案。

    好心人請協助,任何建議都感謝~~

  9. #9
    會員
    註冊日期
    2004-07-22
    討論區文章
    59
    以下是我從 WinRAR HELP 中複製的應該有幫助
    請注意這一行
    ----------------------------------------------------------------
    N 壓縮檔編號。WinRAR 對既有的檔案尋找賦予的名稱,如果找到,則增加壓縮檔編號直到檔名唯一為止。
    ----------------------------------------------------------------

    當建立壓縮檔案時,以格式 [YYYYMMDDHHMMSS] 附加目前日期字串,這對於每日更新是有用的。
    附加字串是由 [格式] 選項所定義,或者如果不存在時,則使用 [YYYYMMDDHHMMSS]。格式字串可以包含下列的字元:

    Y 年
    M 月
    MMM 純文字式的月份 (Jan,Feb,等)
    W 純文字星期 (星期以星期一開始)
    A 數字星期 (星期一為 1,星期日為 7)
    D 日(月)
    E 日(年)
    H 時
    M 分 (如果接續在時後面,則視為分看待)
    S 秒
    N 壓縮檔編號。WinRAR 對既有的檔案尋找賦予的名稱,如果找到,則增加壓縮檔編號直到檔名唯一為止。
    每一個上述的格式字串各代表加入壓縮檔檔名的一個字元。例如,使用 WW 代表兩位數星期數,YYYY 定義四位數年份。
    如果在格式化字串的第一個字元是 '+',日期字串和基本壓縮檔名位置交換,所以日期將在壓縮檔名之前。
    格式化字串可以包含自訂的文字,該文字須包含在 '{?' 及 '}' 字元之間。這段文字會插入到檔名中。
    其他字原則沒有改變,會加入壓縮檔檔名中。
    如果您要更新已經存在的壓縮檔,請小心使用 -ag 開關。基於前次使用 -ag 的格式字串及時間的不同,所產生的壓縮檔跟現存的可能不一樣。要是這樣,RAR 會產生新的壓縮檔,不會更新已存在的檔案。



    引用 作者:leonchou
    最近總算有時間來玩這個,覺得WinRAR command line
    支援的參數超多,功能真是強~

    不過遇到一個瓶頸就是日常備份的日期檔名問題...
    我通常在晚上做備份,壓縮檔名為隔天的日期,
    例如 7/8 晚上備份為 0709a.zip (a = AM, 因為7/9早上要更新到別處)
    如果我是超過 7/8 24:00 做的 (也就是 7/9 凌晨),
    那麼使用 WinRAR 的 -agMMDD 就沒問題 (-ag參數會產生系統日期檔名),
    但如果我在 7/8 24:00 之前做的,怎麼辦呢?
    用 -ag 就會產生 0708a.zip 而蓋掉原先的 0708a.zip ~
    問題二,考量重覆做備份的情形,如果備份前要先刪除已存在的同名 zip,
    How? bat 要如何判斷出 0709a 這個檔名 (無論現在是 24:00 之前/之後) ?

    PS. 因為 WinRAR A ... 指令會把檔案加入已存在的同名 zip,所以要先刪除。
    如果改用 WinRAR U ... 又只會更新,不會新增檔案。

    好心人請協助,任何建議都感謝~~

  10. #10
    Take it easy~ leonchou 的大頭照
    註冊日期
    2001-05-03
    討論區文章
    3,244
    引用 作者:Viking
    以下是我從 WinRAR HELP 中複製的應該有幫助
    請注意這一行
    ----------------------------------------------------------------
    N 壓縮檔編號。WinRAR 對既有的檔案尋找賦予的名稱,如果找到,則增加壓縮檔編號直到檔名唯一為止。
    .........
    謝謝你的意見!
    但我基於不同目錄不同壓縮選項的需求,
    一個備份檔會分幾次(數行指令)壓縮而成,
    如果用壓縮檔序號就會產生好幾個壓縮檔了。

    anyway, 我已研究出一個... 不甚滿意但可接受的寫法。
    感謝大家~~

    經過多日的測試與修改, 總算有點成果..
    附檔含有2個bat, 分別是日常備份和完整備份的範例.
    日常備份(daily.bat)功能較多, 適用彈性的需求;
    可以3種執行方式: shortcut, Run, cmd (支援參數)
    給有需要的人參考, 也請多多指正&研究~~


    附加檔案 附加檔案

第 1 頁,共 3 頁 1 2 3 末頁末頁

類似的主題

  1. [分享]利用批次檔備份資料(檔名是依據年月日時分秒)...
    作者:bobhsieh 所在討論版:-- Windows 討 論 版
    回覆: 5
    最後發表: 2009-07-16, 03:58 PM
  2. 【建議】警告firefox users定期備份bookmarks!!!
    作者:victorinoxs 所在討論版:-- 網 路 軟 體 討 論 一 版 (Browser,Email
    回覆: 3
    最後發表: 2005-06-10, 09:41 AM
  3. 【求助】如何定期備份其他網路上芳鄰的檔案
    作者:塵緣 所在討論版:-- HELP ME 電 腦 軟 硬 體 急 救 版
    回覆: 7
    最後發表: 2005-05-19, 08:02 PM
  4. 【問題】尋找軟體備份資料用
    作者:jaga637 所在討論版:-- 其 他 軟 體 討 論 版
    回覆: 0
    最後發表: 2002-07-12, 12:27 PM

 

此網頁沒有從搜尋引擎而來的訪客

發表文章規則

  • 不可以發表新主題
  • 不可以回覆文章
  • 不可以上傳附加檔案
  • 不可以編輯自己的文章
  •