決策矩陣 · 共享構建機 · 產物同步

2026 小團隊共享遠端 Mac構建產物 rsync 同步與 NFS 本機快取選型決策矩陣

2026.03.28 Meshmac 專家 約 8~10 分鐘閱讀

共享遠端 Mac跑 CI 時,構建產物須快、可重現、不互踩。本文給技術負責人:rsync 直傳/增量與 NFS 快取選型,以及目錄鎖umaskSSH 分角色與衝突規避參數。延伸:Worktree 與鎖檔權限隔離首頁部落格列表

痛點與邊界

  1. 半套同步:只拷貝二進位未帶版本目錄,導致下線任務讀到半成品。
  2. 權限外溢:單一帳號寫入全系統路徑,稽核困難,違反權限隔離
  3. 併發踩踏:兩條流水線同寫 dist/,快取與索引檔撕裂。

決策矩陣總表

依寫入者、讀者與一致性快速對齊;標示常選甜蜜點。

方案 一致性 頻寬/延遲 維運複雜度 較適合
rsync 直連(單次全量或鏡像) 高(完成後整包一致) 初次較重;後續視變更量 偶發發版、包體可預測(甜蜜點)
rsync 增量(--delete 謹慎) 中高(依原子切換策略) 頻繁小步交付、多下游拉取
NFS 掛載+本機頁面快取/唯讀層 中(受伺服器與快取策略影響) 多讀者省拷貝 大量並行讀、共享基線快取

三種模式適用場景

rsync 直連/增量:單一發布節點先寫暫存再整批切換;增量以清單或時間驅動,--link-dest 可省空間(視檔案系統)。--delete 僅在單一真相樹上使用。

NFS:多臺共享遠端 Mac唯讀掛基線 SDK/Pods 省頻寬;構建輸出放本機再以 rsync 發布,降低寫競態並觀測 timeout。

併發、umask 與 SSH 分角色

  • 目錄鎖:flock 或鎖檔;先寫 staging/build-<ID>/,持鎖切換 current 符號連結。
  • umask:建議 027(約 750640),同群 CI 可讀、他人預設不可寫。
  • SSH 分角色:builder 沙箱、artifact-writer 僅寫版本子目錄、readonly 除錯;輪換見憑證矩陣
  • rsync 衝突:避免就地覆寫熱路徑;目錄級替換較穩。--inplace 僅單寫者可考慮,多寫者關閉並分層版本。

落地步驟(≥5)

  1. 劃定產物根與命名(含 SHA/流水號),禁止多專案共用扁平目錄。
  2. 構建帳號 umask/ACL/群組寫入 CI 映像或啟動腳本。
  3. 暫存→校驗→持鎖切換 current 三階段發布。
  4. 讀多寫少基線大:NFS 唯讀;寫入與發版走 rsync 或物件 API。
  5. SSH 角色與 sudo 白名單版控化,每季演練吊銷;監控磁碟、rsync 失敗與 NFS timeout,對齊Runner 矩陣

可引用參數清單

  • umask 027:同群讀產物、預設阻擋他人寫入。
  • 目錄深度:專案/版本/平台至少二層,避免快取鍵撞。
  • rsync-aH--partial-dir;完成後目錄級切換。

常見問題 FAQ

Q:NFS 當構建輸出?
A:高併發小檔不建議;本機輸出再 rsync,NFS 唯讀基線較穩。

Q:--delete 何時安全?
A:目標為單一真相鏡像、無人工雜檔,且先 dry-run。

把產物同步策略跑在專屬遠端 Mac 節點

選擇節點、開通 SSH/VNC

免登入購買/節點選擇幫助中心。延伸部落格首頁

專屬構建節點 權限可拆分 幫助中心免登入
選擇節點