Freebsd

在現有的 BSD 安裝上保存 config/pkg 目錄以便在全新安裝時重用,以及安全的方法嗎?

  • October 23, 2018

儘管幾年前我嘗試建立一個基於 GUI 的 Linux,但我並沒有真正獲得過之前的 *nix 系統經驗。這次我直接跳到 BSD 是因為我喜歡它的理念和對質量的高度關注,以及由此產生的發布開發週期略顯保守的方法,並且因為我比其他 *nix 擁有更多的經驗。

我真的不自信的一個領域是跟踪我設置的配置更改。一切配置都是“編輯/path/rc.things”或“將這些行添加到pkg-x.conf”或“在環境或pkg中設置這些變數”的情況。我對這樣的方向感到滿意;困擾我的是維護和重用——我如何在設置和使用它時準確跟踪我所做的更改,以及如果我想在未來在另一個系統上再次進行這些更改而無需 3 個月區分每個文件並逐行查看。我希望一開始我會有很多這樣的東西,因為我會從經驗中學習。

我的目標是,如果我想設置第二台伺服器,其中大部分系統/pkg 配置具有相似或相同的設置(在單個 LAN 上很常見),或者作為我學習曲線的一部分進行備份、擦除和重新安裝,或者只是為了更新系統,我真的不想要我保留的 txt 文件列表,其中列出了 400 個帶有碎片配置的文件,所有這些文件都需要費力地手動重新創建或在控制台中編輯多行。我也不想不假思索地恢復所有文件,或者找到確實包含我不知道的配置或其他歷史/活動資訊的文件,或者缺少環境數據,並且永遠試圖找出在哪裡可能隱藏了需要在新系統上複製或編輯的內容。

我不確定是否有一個真正簡單的解決方案(在任何主要作業系統上)——即使是帶有 GUI 的 Windows,我也必須考慮儲存在各種目錄、系統資料庫分支等中的文件和條目。但至少我在 Windows 上經歷了很多年的反複試驗,所以我很清楚要抓住什麼,這取決於機器的使用方式,而且我可以一個包一個包地快速完成。我知道我使用了哪些軟體包,我可以只恢復它的配置目錄或系統資料庫設置,我需要通過它的 GUI 或其他方式來完成哪些操作,以及在哪些地方可以添加有用的系統調整。

我也知道在哪些情況下複製一個文件夾來恢復我以前的配置或狀態是安全的,在哪些情況下最好不要這樣做,因為還需要設置其他東西,讓系統/pkg 來做很長的路要走。

我還沒有關於 BSD 的知識。

積極的一面是,我覺得我有足夠的知識和經驗來粗略地計算出我需要做的事情,當我做的時候,並獲得足夠的安全感和良好的實踐,而不是讓它徹底成為災難——或者我希望我還是這樣做。因此,在這一點上,動手實踐 BSD 是我學習的唯一真正方法。

我如何處理 BSD 使用/管理的這一領域,了解 BSD 的人最終傾向於使用哪些解決方案?

換句話說,當我開始使用 BSD 時,我如何能夠以一種不那麼費力或耗時的方式跟踪、簡化和恢復設置(以在沒有幾天控制台文件編輯和差異的情況下進行選擇性恢復!)正確地,或者如果這是工作流程和流程的問題,哪些知識或 pkgs 會有所幫助?

很多工作可以被隔離。/etc 中有很多常用編輯的文件可以鏡像到/usr/local/etc. 將您的本地更改放入其中,通常它們會被拾取。 rc.conf有點亂,但你可以在裡面放一條線來從其他地方抓取東西。periodic.conf以幾乎相同的方式工作。

rc.d文件(如果有的話)可以進入/usr/local/etc/rc.d,將它們與系統文件分開。

您不必編輯syslog.conf,或者newsyslog.conf因為您可以使用小文件/usr/local/etc/{newsyslog,syslog}.conf.d來做您想做的事。複製這些目錄比編輯原始的單個文件要容易得多。還有其他各種以 .d 結尾的目錄,您可以在其中放置所有作為原始單個文件的一部分執行的小文件。當心syslog.conf.d。您必須以其中的所有文件名結尾,.conf否則它們將被忽略!

還有(例如, in/etc/boot)文件以 . 結尾.local。這些包括/boot/loader.conf.local. 它們並沒有很好地與主系統目錄分離,但它們的命名方式使它們更容易被注意和維護。

如果您有核心配置文件,請將它們保存在 (say)/root/config中。然後,在建構核心之前,在/sys/i386/conf(或任何地方)建立指向它們的符號連結。否則,更新/usr/src將清除它們 - 重新創建符號連結比重新創建(甚至恢復)核心配置文件更容易。

請記住,並非所有這些有用的輔助文件都預設存在。這就是為什麼您必須查看“主要”文件的手冊頁以查看可用的替代方案的原因。

總結

對於您發現自己正在編輯的每個文件,請仔細閱讀其手冊頁。在大多數情況下,您可以編輯或創建本地文件或將文件放在本地目錄中。這幾乎將所有內容集中在/usr/local/etc.

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