2010/01/12

以 Dropbox 同步多部 OS X 主機的資料《 Part 1 》

All for one, one for all.


這陣子小鵝拼老命與 Dropbox 瘋狂搏鬥之後
多多少少摸出用這『丟盒子』做多機同步的技巧

由於網路上頭
無論中英文的相關資訊都是片片段段的
特別是中文的 Mac 圈裡頭
對於丟盒子的同步技巧幾乎是沒有
(話說在 OS X 裡頭做實在是不怎麼容易啊!)

再者
為了怕小鵝這個年久失修的大腦過一陣子就全部忘光光
還是花點時間寫下來
免得到時候全部失傳了 :P


首先
請注意以下幾件事:
(a) 各電腦的 OS X 版本必須完全相同
(b) 各電腦的應用程式版本必須完全相同
(c) 各電腦的 Dropbox 版本必須完全相同
(d) 確認要同步的資料總量比你的 Dropbox 容量小
(e) 開始以 Dropbox 同步之前,記得先用任何一種方式備份該資料



小鵝接著來解釋幾個重點:

( 1 )
這 Dropbox 的同步方式是把所有的資料都送到官方伺服器上頭去。以伺服器裡已經有的東西去比對各部同步的電腦資料是否有任何變動,再隨時把最新版本的檔案上傳或以伺服器上最新版本的資料去取代各電腦裡頭的較舊資料。因此,無論如何,所有想要同步的資料,都必須先完成上傳的動作才行。

( 2 )
大約是 0.9.70 之後新增的 LAN Sync 功能,是先以伺服器上的資料去比對同一個區域網路裡頭的任一部電腦裡頭是否已擁有最新版本的資料。若已經有了的話,就直接透過區域網路去做更新同步的動作,而不再從伺服去上頭去下載資料來更新。這樣一來完成同步的速度會較以往快上超級超級多。但是,這 LAN Sync 功能的所有比對動作都是以官方伺服器裡頭的檔案為基準。因此,『第一次完整上傳』的動作是絕對必要的!!!小鵝的建議是,如果同步的資料量很大,像是 iPhoto、iTunes 這類動不動就好幾 GB 的資料庫。請先把其他相同網域內電腦上的 Dropbox 關掉,讓第一部電腦完成所有資料的上傳之後,再把其他電腦的 Dropbox 打開。這樣子 LAN Sync 的動作就會馬上開始。

( 3 )
請不要很天真地認為,為了節省時間,就直接先把要同步的資料自己通通拷貝到每部電腦裡。以為這樣會快很多,只要讓 Dropbox 再去背後慢慢去做上傳的動作就好。這麼做最大的問題是,會造成 Dropbox 的上傳比對誤判,到最後會產生一堆『衝突檔案』,甚至會讓 Dropbox 刪了不該刪的檔案。所以,第一次上傳的正確動作是:只有其中一部電腦擁有要同步的資料,其他電腦的該相對檔案是不存在的。當 Dropbox 完成上傳到伺服器的動作之後,自然會去完成其他電腦的同步動作。( 是的,小鵝一開始就很傻很天真地玩到天誅地滅的慘況...... )

( 4 )
如果同步的資料是某應用程式的資料庫。例如,你同步的東西是 iPhoto,請確定每次只有一部電腦在執行 iPhoto,如果每部電腦的 iPhoto 都開著,又各自在做即時的存取動作,就非常很容易產成檔案衝突的窘境。以 Dropbox 的設計原理來說,這種狀況其實不應該發生。但是,資料庫的存取動作其實是非常複雜的。以 Dropbox 目前的狀況來說,似乎還沒有辦法有效地完全避免掉這類動作可能產生的小問題。因此,小鵝還是誠心建議每次只有一部電腦在跑某個有做資料同步的應用程式。

( 5 )
如同小鵝先前的這篇文章裡頭解試過的,資料庫同步的原則是這樣:由於 Dropbox 目前的版本只能同步『Dropbox 檔案夾』裡頭的檔案。因此,如果該應用程式有固定的資料庫存放位置,不能讓你任意指定(像是:Address Book、iCal、Mail 之流的)。那你就不能很爽地只是把資料庫移動到 Dropbox 檔案夾裡頭去就好。必須做一個所謂的 Symbolic Link(絕對不可以偷懶用『替身 alias』喔!)放在原本應用程式預設的存放位置,然後指定到 Dropbox 裡頭去才行。


以上五點大原則都瞭解之後
我們就先來學做 Symbolic Link
製作 Symbolic Link 的動作
在 iPhoto、iTunes 這類可以自行指定資料庫位置的應用程式是不必做的
只要在開啟應用程式的時候按著 alt / option 鍵
就會先請你指定資料庫的位置
在指定過一次之後
應用程式就會記起來
之後只要直接開起來用就好

由於
這 Symbolic Link 並不是 OS X 內建的功能
武功高強一點的
直接把終端機叫出來
就可以非常帥氣地輸入鬼才知道甚麼意思的 Unix 指令
做出漂亮的 Symbolic Link 來
如果
本來就很懶
功力又遜到一個不行
那有非常好心的人
幫我們做好可以從滑鼠右鍵選單裡頭製作 Symbolic Link 的程式
我們只要動動手指就可以輕鬆搞定

小鵝在這邊就先來教大家怎麼安裝這東西

首先
請按這邊前往下載這個由 Nick Nitzmann 所撰寫
叫做 Symbolic Linker 的小軟體

解開那個 .dmg 檔之後
會看到好幾個檔案
相關的安裝說明也在裡頭

假如
你的 OS X 是 10.5 Leopard 以前的
那麼請把
SymbolicLinker.plugin 這個檔案
拷貝進 /Library/Contextual Menu Items 底下
最後重新啟動 Finder 就可以囉!

假如
你的 OS X 是 10.6 Snow Leopard 以前的
那麼請把 SymbolicLinker.service 這個檔案
拷貝進 /Library/Services 底下
最後 再點兩下拷貝進去的 SymbolicLinker.service 這個檔案
讓它開始起作用就可以啦!



好的
學會怎麼做 Symbolic Link 之後
就可以開始來把東西一股腦塞進 Dropbox 檔案夾裡去

是的
龜毛的小鵝原則又來了
請依照以下程序來搬動資料庫與 Symbolic Link

( 1 )
先把要同步資料庫的那個應用程式關掉。

( 2 )
把這部電腦的 Dropbox 同步程式關掉。

( 3 )
把整個資料庫搬到『Dropbox 檔案夾』裡你要的位置去。

( 4 )
在資料庫檔案或檔案夾上頭按右鍵。以 10.5 來說,接著從功能表最下面那個『更多』裡頭選擇『Make Symbolic Link』。

( 5 )
接著,你就會看到除了原來的檔案以外,還多了一個相同檔名後面加 “symlink” 的檔案。把這個 symlink 檔案搬回原本這個資料庫應該在的位置。

( 6 )
把檔案或檔案夾名稱後面的 symlink 去掉,讓它變成與原來的檔名完全相同。

( 7 )
確定以上的步驟 (1) ~ (6) 都操作正確。重新啟動 Dropbox 就完成啦!




今天先談到這邊就好
接下來要講的是
要同步各個應用程式的資料
必須分別把哪些資料夾丟去給 Dropbox 做同步做 symbolic link?

累了
改天再繼續講 :D


請點這邊繼續看第二集

4 則留言:

  1. 只是我的意見啦,這樣搞好累喔,mac都不mac了。

    回覆刪除
  2. 看新聞說波蘭下大雪,小鵝哥是被困住所以才搞了那麼久的丟丟丟嗎?

    回覆刪除
  3. 可是搞完...嗯...搞好一次以後就海闊天空了耶!XD

    回覆刪除
  4. To: [ 咩哥 ]
    搞得老子都不老子了 XD


    To: [ 通哥 ]
    那麼...... 一起丟吧!


    To: [ 籽哥 ]
    搞完... 海闊天空可能是有病,請盡早就醫。謝謝!

    回覆刪除