2013年12月7日 星期六

好用的系統和資料備份軟體-Macrium Reflect和FBackup

在電腦中最重要的部分就是資料了!因此,我也一直在思考如何快速和方便的備份資料,在偶然的機會發現了Macrium Reflect這套磁碟備份軟體,幾乎有所有我想要的功能,使用上也十分的方便,重點是Free的,不過現在官方網站已經沒有提供了,需要另外在自已抓就是了。

首先先介紹他一些我覺得非常好用的功能,
  1. 可以將partition的資料轉成image檔和還原,不過一次只能做一個實體硬碟就是了
  2. 另一個主要的功能是有排程備份的功能,並且可以選擇備份方式,如差異或是完整備份。
  3. 可以製作開機環原光碟和USB,這個功能十份的方便,可以用來做系統的還原功能。
  4. 可能網路讀取image的功能。
  5. 可以掛載image檔,然後還原想要還原的檔案

前三點是我主要使用的功能,第四點可能要等我買NAS之後再試吧(等NAS降到五千以下?)。不知道他有沒有提供大量主機還原的方案,可能Server版有提供吧,有興趣的朋友可能自已再進一步的研究!(中研究有研發一個叫再生龍的大量主機還原的軟體,可以參考看看)。

以下是他的教學網站,因為他寫的太好了,我就不作教學了XD

你可以到丫榮福利社來下載免費版

當然,每套軟體不可能都完美的符合你的需求,但Macrium Reflect這套軟體可以完美的達到系統備份的功能,也就是備份系統碟,但在資料碟中我並不需要備份整顆Partition,比如一些影片和照片我不想浪費儲存空間,或是把一些較不重要的資料放至網路儲存空間。這時可以使用FBackup,這是我用來備份特定資料夾所使用的備份軟體,為什麼我會推薦這套軟體最大的原因是穩定性和是Free的,由於我的系統主要是使用Windows 7 64位元版和資料量都多達幾百G,在我試過了幾套免費的資料備份軟體時,常常造成軟體當掉的情況,而FBackup算是很穩定的資料備份軟體。

在這我介紹一下他的特色和吸引我的地方,
  1. 可以自已設定需要備份那些資料夾,並將這些設定存成任務,只備份這個任務中的目錄
  2. 當然也有排程的功能,也可以選擇是差異備份或是完整備份。
  3. 將檔案儲存成壓縮檔,這可以節省空間,但相反的也需要花費較多的時間就是了!
  4. 在轉成壓縮檔的時候,可以設定密碼,增加安全性!

這裏是他的簡易教學

你可以到官網下載免費版本

個人在使用上,主要會依據資料的特性做份類,比如是個人或是公司的資料,另外一個分類是變動性較低的資料。

另外,我也開始在思考是否有優秀的網路儲存空間可以利用,主要有幾點需要考量的因素
  1. 儲存空間的大小,和是否有儲存時間的限制(某些免空有儲存時間的限制)
  2. 傳輸速率,可以根據使用的需求進行評估,如空間小但速率快,可以拿來做常變動資料的備份區,傳輸速率慢,但空間大,可以拿來做不常用,但資料量大的備份區,但如果太龜速,可能還是不適合做來資料備份使用。
  3. 特殊功能別的網路儲存空間,主要是網路相簿,如Flick、無名、google相簿或是Facebook的相簿等等。
  4. 介面操作的方便性
現在簡介幾個我知道的網路儲存空間,
  1. Dropbox,很有名的網路儲存空間,雖然使用空間不大,但是在同步性和使用方便性上十份杰出,適用用來做coworker的網路儲存空間!
  2. Google Drive,空間也不大,主要是拿來放google網路文件的空間,其實也可能拿來放檔案,基本上同步性和使用方便性也是十份優秀,再加上google document的文件功能,在多人修改文件有其優勢,再配合其它google產品,應用面可以說非常的廣泛,但有時在操作上會遇到一些異常的情況…BJ4,不過不是什麼大問題就是了,還是十份的推薦。。
  3. google相簿,可以即時的和手機的相簿做同步,但大量圖片上傳時會消耗大量的電力,不使用時記得關閉
  4. flick,儲存空間多達1G,而且照片的品質在網路上看起來蠻有質感的(google也不錯,不過這比較偏向個人觀點),也是蠻吸引人的,但最近已經沒有在玩單眼了,沒有需要大量的相簿空間
  5. youtube,拿來儲存影片的空間
  6. 其它,有聽過一些網路儲存空間,但因為沒有使用過,所以放這裏以後再進行研究,hinet的免空、skydrive、mega update
對於網路空間的用法我還沒想出一個最適合我的用法,也可以說幾乎沒在用,很多東西也是丟著,然後也沒什麼在使用就是了,之後如果有想出適合的用法再寫一篇,我如何利用網路儲存空間。



HG(Mercurial)的指令記錄

最近因為一些因素接觸到Mercurial這套版本控管的工具,在網路上都可以找到一些基本的教學,不過我主要先記錄一些我常用的指令就好了。之後有空會再慢慢補齊 。

先簡單介紹Mercurial,Mercurial的中文應該有很多意思,不過我想應該要翻成水銀,因為水銀的化學符號是hg,所以在打指令時都是hg開頭,另外,他是使用python所開發的,所以P派的人應該跟他比較熟吧XD,是類似git的分散式版本控管的,分散式版本控管的優點是,可以在本機端做版本控管,如果有需要再將檔案上傳至遠端主機上,這大幅度的降底主機的儲存成本,又可以更快速的做版本控管的動作,所以才會有github和bitbucket的網站出現。

*藍色的字是根據你實際狀況建立的名稱



第一步:建立HG的專案和基本設定

主要有二種情況,一種是遠端主機上無此專案,另一種則是遠端主要上已有些專案了

  • 遠端主機上無此專案

如果要建立新專案的話,先建立hg的目錄,輸入
hg init
到目錄底下的.hg/hgrc這個檔案中設定
主要是設定遠端主機的url和commit的username
[paths]
default=https://username@bitbucket.org/owner/project name/
[ui]
username=your name
可以使用Bitbucket這個類似Github的網站來做來遠端的版本控管主機
首先要在Bitbucket建立一個repository

將hg目錄新增至bitbucket
hg push https://username@bitbucket.org/owner/project name/ 如果有設定default path就不用輸入目的地

  • 使用遠端主機上的專案
如果,想要的project已經存在bucket上時,可以直接從上面複製下來,不用從頭建立,但還是需要設定.hg/hgrc,可以參考上面的設定
hg clone (https://your name@bitbucket.org/project owner/project name/)

第二步:本機端的版本控管

每次有新檔案時,都要新增檔案
hg add filename 想偷懶可以打
hg add *.* 如果有需要的話可以設定ingore檔,這樣特定的檔案類型就不會被新增了

再來commit到本機端
hg commit 會跳出筆記本讓你編輯(Linux版本應該是ui)
如沒有跳出筆記本的話,可能需要到.hg/hgrc設定
[ui]
editor=notepad.exe
或是在commit直接輸入註解
hg commit "your comment"

第三步:遠端的版本控管

主要有三個指令
將檔案和一些設定上傳至遠端主機上
hg push
將檔案從主要下載下來
hg pull
將檔案更新到最新的版本
hg update

第四步:分支的版本控管


branch的管理,當要建立一個新的分支來開發程式時所需要的指令

先查看一下目前在那個分支
hg branch
再查看一下有那些branch已被建立
hg branches
建立一個新的branch
hg branch branch name
在remote端建立branch的資訊
hg push --new-branch
之後我們就可以用push來上傳檔案

如果我們要在已存在的branch切換時,使用
hg update branch name 這樣會將資料更換到那個branch的最新資料,記得切換前要commit檔案

有時在使用update做branch的切換時會遇到一些問題
基本上會一個分支為出發點看你要取什麼名字,比如
hg branch stable 表示這個版本的分支是穩定版

在根據你的新功能從stable開立新分支
hg branch new_branch
當你開發完想做merge時,可以回到stable做merge的動作
hg update stable
hg merge new_branch

另外一個比較特別的情況是,當你回到stable做pull後,想回new_branch時,可能因為版本的差異造成無法切換,解決的辦法有merge和clean,merge已經在上面提過了, clean的方式是
hg update --clean 不過這個方法是確定新分支的修改都不要時才建議使用,各位可以想想是否有更聰明的辦法

第五步:其它常用的指令

我有一些比較常用的指令
如查看log檔
hg log 可以加上-l來選擇要秀最近的幾筆log
hg log -l number
其它我還未使用過的指令,但應該也是蠻有用的指令,我也大概先列出來,有興趣的朋友可以自已研究進一步的用法
hg st      看主線被合併進來的檔案
hg diff     看原始碼差異

結語

只是大概對我目前有用到的指令做個簡單的記錄,下面的網址算是我比較看的懂的介紹,有興趣的朋友可以看看,基本上我之後應該還是會使用git為主,而 hg和git就目前這些指令看起來使用上並沒有什麼不同,不過應該還是有些細微上的差異,比如hbase和branch的管理方式,這當然會對開發造成影響,所以是多人的 group在使用的話,最好還是做進一步的了解在使用。

參考資料