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在使用的話,最好還是做進一步的了解在使用。

參考資料



2013年10月1日 星期二

Git基本操作指令

這幾天看了一些Git和GitHub的資料,覺得Git真的是不錯的版本控管的軟體,在這邊記錄幾個比較常用的指令吧,網路上已經有許多的教學可以看了,因此,在這我主要是記錄一些我覺得我之後可能比較會用到的指令,需要進一步的資料的話,可以看我的參考資料。

初始化設定
  • 安裝git和設定
我主要是使用ubuntu的環境,所以使用apt-get來安裝,第一次使用時,需要設定使用者名稱和email。
sudo apt-get install git

git config --global user.name "your_name"

git config --global user.email


也可以設定alias name來簡化輸入,直接編輯~/.gitconfig
cd ~

vi .gitconfig



[vi]

alias

  checkout = co


之後如果需要連到github上的話,需要建立ssh的public key
cd ~

mkdir .ssh

cd .ssh

然後使用預設值,不用設定密碼
再將id_rsa.pub的全部內容,複製到github上(在個人設定有一個ssh key的地方)
ssh-keygen -t rsa -C your_email


  • 建立git的專案
初始化一個全新的資料夾,可以使用
git init


如果要複製專案下來,可以使用
git clone https|ssh

https的網址可以去github上面找,可以用來複製別人的專案
ssh可能用來處理自已的專案,就不用再輸入帳密


本機端處理

圖一:git的檔案狀態圖(資料來源[6])


從圖一中可以看出,在本機端中,git的檔案可分成三個階段,working, staging,和repository,我正在編輯的程式會存在working中,然後新增和修改的檔案我們會移至staging階段,當要寫這些修改的部分進行版本儲存時,會移至 repository。

  • 新增和儲存
當有檔案修改或新增時,需將檔案推至staging
git add your_file

或將所有新檔案全部推至staging
git add .

當需要將staging的檔案推至本機的repository時
git commit

然後會跳出vi視窗,然後輸入你要寫入的註解
可以使用-a和-m簡化步驟
-a 跳過add的步驟
-m 直接寫入comment

  • 刪除和移動檔案
需要移除檔案使可使用
git rm
需要移動檔案時,可使用
git mv

  • 狀態查詢
查詢git的狀態
git status

查詢commit的記錄
git log
查看各版本相異點
git diff

  • 建立tag
建立tag
git tag your_tag

  • 建立和管理branch
建立branch,ref可以參考tag或是它他branch
git branch branch_name [ref]

還原檔案或是移至分技
git checkout

將分技分併一起
git merge a1 a2

  • 進階應用
修改comment(應該會很少用到,確切使用方法也不清楚)
git rbase

  •  其它
其它可能用不到的,需要時再查詢
git show

git reset

git grep

git stash

git revert



遠端處理

  • 設定
遠端設定
git remote add new-branch project-url


  • 取得和上傳資料
取得遠端資料
git pull

上傳資料到遠端
git push




參考資料:
[1]  http://pulipuli.blogspot.tw/2013/02/github-part3-git.html
[2]  http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/
[3]  http://blog.longwin.com.tw/2009/05/git-learn-initial-command-2009/
[4]  http://ncu-csie-snmg.github.io/2013-NCU-CSIE-Website-Design-Competition/git.html
[5]  http://www.youtube.com/playlist?list=PLuW7NCGvKlyXAOC4Kn7VW0vtPNxSqICrX
[6]  http://git-scm.com/book/en/Getting-Started-Git-Basics







2013年9月26日 星期四

MySQL學習筆記(一) - 登入和簡單的查看

安裝的部分就bj4了,主要是記錄一些基本的操作指令,和目前會用到的管理者指令,之後可能還會再進行補充

基本操作

登入
mysql -h host -u user -p

離開
exit

查詢資料庫
show databases;

使用資料庫
use databases
分號;可以省略

查詢資料表
show tables;

管理指令

新增使用者和設定權限
insert into mysql.user(host, user, password) values('%', 'username', 'password');
grant all on *.* to 'user'@'host' identified by 'password' option grant
也可以直接用grant直接新增使用者
flush privileges
記得刷新權限

參考資料



2013年9月24日 星期二

Ubuntu學習筆記(一) - 常用軟體安裝

記錄幾個安裝Ubuntu後,面對到的問題

安裝嘸蝦米

主要是安裝 ibus-table-boshiamy_1.3.0.20101012-1_all.deb 這個安裝檔
因為是deb檔的安裝檔,所以使用指令dpkg
sudo dpkg -i filename.deb
再來就可以使用ibus來設定嘸蝦米
另外切換下一個輸入法中的Shift_L,指的是Shift + Left

安裝java

java的安裝指令
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
java -version

安裝Notepad++和wine

因為Notepad++只有Windows版本,所以需要灌wine
wine的安裝指令
sudo apt-get install wine
再來只要到notepad++的官網下載安裝檔,再用wine的程式啟動安裝

安裝MySQL

也是使用apt來安裝,之後有時間再試看看能不能使用直接安裝的方式
sudo apt-get install mysql-server
使用workbench做為視覺化的開發工具,可以官網下載

參考網站: