Unix系統(tǒng)管理很棘手
今天,我們依舊來(lái)學(xué)習(xí)Unix系統(tǒng)的知識(shí)。Unix系統(tǒng)管理總是一個(gè)棘手的問題,運(yùn)用正確的工具會(huì)使這個(gè)問題變得容易。在這一部分中,Teodor 提出了關(guān)于使用 Perl 來(lái)簡(jiǎn)化和牢固系統(tǒng)管理的想法。在這種環(huán)境中,系統(tǒng)配置引擎 cfengine 是一個(gè)極其重要的工具。
要完成本文中的練習(xí),系統(tǒng)中必須安裝了 Perl 5.6.0。操作系統(tǒng)***是主流 Unix 安裝(Linux、Solaris、BSD)的最近版本(2000 或更新)。在較早版本的 Perl 和 Unix系統(tǒng) 以及其它操作系統(tǒng)上也可以使用本文中的示例,但應(yīng)當(dāng)將可能的功能故障作為練習(xí)來(lái)解決。
Unix系統(tǒng) 管理具有挑戰(zhàn)性的一大原因是每個(gè)Unix系統(tǒng) 供應(yīng)商認(rèn)為標(biāo)準(zhǔn)是針對(duì)低能傻瓜。所以,即使是同一供應(yīng)商的操作系統(tǒng)(SunOS 4.x 和 Solaris 5.x)也可以是根本不同。在某些情況下,甚至根本沒有供應(yīng)商。
例如,Linux 沒有單獨(dú)的供應(yīng)商(雖然 Red Hat 目前是***的 Linux 分發(fā)版),每一個(gè)版本的 Linux 都有其獨(dú)到之處。如果 POSIX 標(biāo)準(zhǔn)化做得正確,那么它是解決這一問題的正確方向上的一個(gè)步驟。遺憾的是,它只能保證系統(tǒng)管理所需功能的一個(gè)小的子集。
Unix系統(tǒng)管理最讓人失望的部分是 Unix系統(tǒng)供應(yīng)商逃避標(biāo)準(zhǔn)而找到的各種方式。由于這種原因,當(dāng) Perl 單獨(dú)應(yīng)付 Unix系統(tǒng)中所有問題時(shí),它是無(wú)能為力的。如果沒有象 cfengine 這樣的工具,象密碼文件語(yǔ)法、共享文件系統(tǒng)以及跟蹤日志等問題很快就變得無(wú)法管理。然而,還是存在一些希望;畢竟,我們只是查看了 Perl 可簡(jiǎn)化系統(tǒng)管理的一些方法。
Perl 與 cfengine 結(jié)合得很好。可以用 Perl 生成定制的 cfengine 配置,或者可以從 cfengine 運(yùn)行 Perl 腳本。我用過這兩者,發(fā)現(xiàn)集成不難。然而,cfengine 受過分簡(jiǎn)單的配置語(yǔ)言和缺乏數(shù)據(jù)結(jié)構(gòu)影響。我將在有關(guān) cfengine 的未來(lái)文章中展開這一問題。
如果選擇實(shí)現(xiàn)的話,本文中介紹的集中化配置文件策略應(yīng)當(dāng)是非常實(shí)用的。在我的站點(diǎn)上現(xiàn)在已經(jīng)使用了六個(gè)月,而且獲得了巨大成功。如果將完整的層次結(jié)構(gòu)檢入一個(gè)如 CVS 那樣的版本控制系統(tǒng),您還將享受到版本化系統(tǒng)文件的好處,即可以回復(fù)到已檢入版本控制系統(tǒng)的任一狀態(tài)。關(guān)于Unix系統(tǒng),我們就講解到這里了。
【編輯推薦】