Cd Chen's Services

ba ba ba la~~

兩台 Mac/UNIX 間的同步

最近把家裏的一台機器,安裝 Leopard 後,我個人所有的 Mac-Like 機器,就有兩台:一台作為桌機的「小寇 (Intel Core 2 Duo)」,另外一台則是用了好幾年的「小銀 (Apple PowerBook G4)」。因為小寇的速度遠遠快於小銀,所以平時在家的時候,就以小寇為主;等到要出門去,再換用小銀。這幾天下來相安無事。

但,人總是喜歡追求進步,而進步的原動力則是來自於「懶惰」。由於小寇與小銀是兩台不相干的電腦,儲存於這兩台電腦間的資料就完全不同,這也造成我某些時候的困擾。例如,出門在外時才發現,某一個重要檔案,放在家裏的小寇上;而回到家裏時,卻在小寇上找不到下午在外面寫的稿子。

由於曾經教過 MCSE 課程,我很羨慕 Microsoft Windows 系統可以讀電腦中的資料同步到檔案伺服器上。但是 Linux 甚至 UNIX-Like 的作業系統,卻未提供這樣的能力,對於常在 Linux/Mac OS X 間周旋的我來說,的確是一種遺憾。

不過,好消息的是,由於 UNIX-Like 系統中提供了 rsync 工具,可以親手打造同步的環境。因此,我決定自己來實做同步兩台 Mac OS X 的環境。

我的想法是:

  • 我的 Linux 上有一個帳號,也保存一份家目錄。
  • 因為小寇是桌上型電腦,我不可能帶著小寇到處亂跑,所以,在小寇上登入系統時,自動掛載 Linux 機器上的家目錄。
  • 而小銀是筆記型電腦,並不適合直接使用遠端目錄作為家目錄。因此,小銀上的家目錄,儲存於其硬碟中。
  • 為了確保小銀中的家目錄內容,與小寇的家目錄內容一樣,使用 rsync 進行同步。

經過一個下午的努力,終於完成上述的環境。整個實作的步驟如下說明:

  1. 將 Linux 的家目錄透過 NFS 分享出來給小寇使用。以下是我的 /etc/exports 內容:

    /home/cd_chen 192.168.0.0/255.255.255.0(rw,sync,insecure)

    這個步驟需注意必須加上 insecure 的 exports option,否則 Mac OS X 將無法順利掛載。
  2. 在小寇上使用「目錄工具程式 (/Applications/Utilities/Directory Utility.app)」設定 Autofs static 掛載紀錄。這樣當我登入小寇時,便會自動掛載 Linux 的家目錄到小寇上。
  3. 在小銀上,利用 rsync 同步 Linux 的家目錄內容:
    • 要將小銀資料同步回 Linux 家目錄時:
      # rsync -avPz --delete ~/ linux:/home/cd_chen
    • 要將 Linux 家目錄同步到小銀時:
      # rsync -avPz --delete linux:/home/cd_chen ~/

到目前為止,這個環境除了下列兩個狀況外,並沒有太大的問題:

  • 在小寇上刪除家目錄內容時,不會進入垃圾桶,而是直接刪除。這個沒有辦法,畢竟 Mac OS X 無法利用 NFS 提供 undelete 的能力。反正以後刪除檔案時小心一點就好。
  • 部份的 *.pkg 檔 (Mac OS X 的安裝程式,類似 Windows 的 setup.exe) 必須先複製到本機硬碟中,才能順利執行。

如果您跟我一樣,是 Linux (或者其他 UNIX-Like) 系統與 Mac OS X 的愛用者,您可以考慮實做跟我一樣的環境。

這篇內容的 Trackback 網址:

http://cdchen.idv.tw/trackback/510