Shell-Script

同步訪問共享的遠端資源

  • September 23, 2021

我在遠端伺服器上有一個共享記憶體,多個客戶端正在讀取和寫入,所以我需要同步訪問這個記憶體。我想我可以:

  1. SSH 進入遠端並在伺服器上獲取一群
  2. 將更新推送到伺服器(rsync)
  3. 釋放羊群

羊群本身正在工作,但為了讓整個工作正常工作,我需要一種在遠端啟動程序的方法,該程序可以在我從客戶端更新記憶體時獲取並持有鎖。然後應該在 3. 中從客戶端釋放群,或者如果與客戶端的連接失去。關於如何做到這一點的任何想法?

順便說一句:在我目前的設置中,伺服器無法連接到客戶端並通過 SSH“拉”更新,從而允許在遠端執行的單個腳本中處理所有內容。

以為我會分享我的解決方案:

rsync -r --rsync-path="flock $dst/lockfile rsync" $src/ $server:$dst

因此,使用 –rsync-path 我在啟動 rsync 伺服器之前獲得了遠端鎖定。如果多個客戶端同時執行此操作,他們將不得不等待文件鎖定可用,然後再進行 rsync’ing。

引用自:https://unix.stackexchange.com/questions/670127