Synchronization

在不同機器上編輯相同文件的建議

  • January 29, 2019

我們的 Rails 應用程序在多台機器上擴展,有時我們需要更改設置production.yml,現在我們必須 ssh 進入每台伺服器並在每台機器上單獨進行編輯。

處理這種情況的正確方法是什麼?

PuppetChef等配置管理系統正是為此目的而設計的。

如果您不想使用它們,可以使用腳本將文件 SCP 發送到伺服器:

while read host; do
   scp -i yourKey production.yml user@$host:/destination/production.yml
   # Add an ssh command here if you need to restart any services
done <  hosts.txt; 

最好使用 rsync 而不是 scp。rsync 的優點:

首先,它將檢查源文件與目標文件相比是否存在任何更改。只有在發生變化時才會轉移,因此與scp.

while read host
do
   rsync -avzh production.yml userid@$host:/destination_location/production.yml
done < hosts.txt

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