同步Linux /etc/目錄

同步Linux /etc/目錄

我有一個帶有 Linux(Ubuntu 伺服器)的虛擬機,它用作其他機器的原型。有時我會在原型系統中進行更改,並希望將這些更改匯入到其他機器上。

我了解 Puppet、cfengine 和 FAI,但想要一些簡單的東西,例如 rsync 腳本,它可以在需要時透過 ssh 工作。

主要目標是 /etc/ 目錄。但我不想同步一些私有文件,例如 /etc/passwd /etc/shadow 等。我不知道這一切。

我的任務有什麼提示嗎?可能有人有這樣的 rsync 腳本。

答案1

一個簡單的解決方案可能是設定 git。

  • 在您的目錄中設定 git 儲存庫/etc
  • 設定忽略檔案以排除您不想遷移到遠端系統的內容。
  • 將所有未被忽略的內容新增到您的儲存庫中。
  • 根據需要從開發儲存庫中進行生產拉取。

答案2

你已經有了答案。 rsync 可以做你想做的事,當你想要它時它通過 ssh 運行,並且它可以輕鬆忽略你不希望它同步的文件:

rsync -avP source:/etc/ /etc/ --exclude-from list-of-files-to-exclude

只需新增要排除的文件清單即可list-of-files-to-exclude。例如:

$ cat list-of-files-to-exclude
/passwd
/shadow

當然,我仍然強烈推薦版本控制,以及像 puppet 這樣更複雜的東西。並確保您注意文件所有權和權限。

相關內容