歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> PERL編程 >> 功能豐富的 Perl

功能豐富的 Perl

日期:2017/2/27 9:27:06   编辑:PERL編程

本文將介紹系統管理的兩個不同層次。Unix Power Tools,Shelley Powers、Jerry Peek、Tim O'Reilly 和 Mike Loukides 著,采用一種簡單易讀的方式介紹了系統管理的基本知識,這對於系統管理人員來說是一本必讀書籍。Analytical Network and System Administration,Mark Burgess 著,向那些具有堅實的計算機科學和數學理論知識的系統管理員介紹一些高級主題。請參閱 Ted Zlatanov 的 Cultured Perl 系列專欄文章。

Unix Power Tools(UPT)第三版由 Shelley Powers、Jerry Peek、Tim O'Reilly 和 Loukides 所著,Analytical Network and System Administration(ANSA)由 Mark Burgess 所著,這兩本書都是介紹系統管理方面的內容,不過它們所涉及的領域並不相同。UPT 專注於 UNIX? 方面的內容,介紹得相當詳細,對於系統管理員來說是一本必不可少的讀物。ANSA 則與操作系統和平台無關,它分析得非常徹底,主要滿足那些具有計算機科學理論知識和幾年高數知識背景的系統管理員的需要。

如果您聽起來覺得 ANSA 是一本非常枯燥的書,那就對了,它的內容的確有些枯燥。UPT 是為從事系統管理工作的所有用戶而編寫的,包括新手和技術領袖;而 ANSA 則是為大學 3、4 年級的學生編寫的一本教科書,也可以作為研究生階段的教材。

注意,對於美國之外的讀者來說,他們所學習的大學課程可能會有所不同:在美國,計算機工程和科學學位通常要經過 4 年的大學學習才能獲得,然後可以繼續攻讀碩士和博士學位,這又需要 2 年到 6 年的時間。ANSA 可以用作大學第三年或第四年課程的教材。

雖然在這樣一個通用專欄中評論 ANSA 這種書有些奇怪,但是隨著本文內容的不斷深入,您會看到 ANSA 並不是一本典型的教科書,對於系統管理員來說,它實際上是一個重要的裡程碑,對這個領域的很多內容都進行了深入的分析。ANSA 與 UPT 之間的區別非常明顯,這就是為什麼我會將它們放在一起進行評論的原因。

Unix Power Tools

UPT 是一本令人恐怖的大塊頭的書。現在它已經出版了第三版,這只不過是隨著時間的推移而更新一些內容而已。比較陳舊的內容被刪除了,所剩下的都是一些有用的最新信息,可以立即應用於 UNIX 系統管理。下面只是對每部分內容的簡要總結,這是因為在這樣一個專欄中對一本 1,000 頁左右的書進行詳細總結是不可能的。

“Part I, Basic Unix Environment” 是對 UNIX 世界的一個簡要介紹。這部分內容的介紹不斷被一些短文打斷,因此新手可能會發現很難跟上該書的進度。本書後面的簡短章節都不錯,但是在簡介部分中,我還是比較喜歡有一個更為連續的介紹。第 1 部分介紹了 UNIX 的基礎知識:文件、進程、用戶和幫助系統。

“Part II, Customizing Your Environment” 非常有趣。如果您喜歡對自己的系統進行定制(希望如此),那麼就可以在這部分中找到很多有趣的技巧。可以定制提示符、登錄設置、終端設置等等。對於任何希望進入 UNIX 世界的用戶來說,這些信息都是必須的,我保證您可以在這部分內容中找到一些新鮮的東西。

“Part III, Working with Files and Directories” 與第 4 部分是本書的核心。用來對文件和目錄進行查看、搜索和操作的所有方法在這裡都進行了介紹、分析和解釋。這部分中也有一些短文:您可以了解一些特定的任務,例如 “在當前目錄中快速查找文件”。通常,這些短文只有半頁到兩頁篇幅,這對於介紹技巧的短文來說是最合適的長度。

“Part IV” 內容的技術性更強,它更詳細介紹有關 UNIX 文件編輯方面的內容。Emacs 和 vi 是此處介紹的兩個主要編輯器,還介紹了一些批量編輯和 “非徹底” 編輯的方法。有關排序的部分對於那些需要對數據進行排序的用戶來說非常有用;UNIX 中基於文本的排序工具所具有的優雅、速度和靈活性足以讓現代的 GUI 工具感到汗顏。

從 “Part V, Processes and the Kernel” 開始,UPT 就開始介紹一些高級的技術了。盡管這對於新手來說看起來有些恐怖(要開始接觸 “內核” 這個恐怖的單詞,對於不從事技術工作的新手來說,這個單詞很難引起他們對技術渴望的共鳴),但是隨著學習的逐漸深入,這些資料並不難理解。執行一下書中給出的例子,您將發現有些東西原來是如此簡單。在後台啟動一個進程,以後再對其進行控制,這會讓您對 UNIX 有更好的體驗。

“Part VI, Scripting” 是對高級主題的介紹。您將學習如何編寫腳本,操作 shell 的歷史記錄,以及如何提高效率。畢竟,計算機的使命就是讓我們可以更加高效地進行工作 —— 有時人們經常忘記了這一點。與基於腳本和文本的界面相比,很多使用鼠標點擊界面的現代 GUI 工具實際上妨礙了我們更好地完成工作。GUI 並不是為使用腳本進行處理而編寫的(盡管有一些例外,但是 GUI 中的任何思想都體現了人的元素,即 “用戶”)。“鼠標點擊” 就意味著用戶需要花一些時間在移動鼠標和點擊鼠標上。使用腳本來執行一系列相關操作,我們就不需要再將時間花費在實現相同操作所需點擊的各個按鈕上了。這就是為什麼這部分內容會如此重要:UNIX 的強大功能在本章中得到了充分的體現,前面所介紹的所有內容通過使用腳本融合到了一起。

正則表達式和通配符是第 6 部分中單獨的兩節內容。對於本書的所有內容來說,這兩部分內容都非常重要,因為正則表達式是很多 UNIX 工具和所有主流 shell 中的一部分。這兩節的內容非常有用,寫得也非常好,欣賞並閱讀它吧。

接下來是 “Part VII, Extending and Managing Your Environment”。到現在(787 頁),您的眼前可能會一亮,但是這部分內容只是一些簡短的技巧,而不是連貫的介紹。這部分內容還正式介紹了文件備份和歸檔以及 Perl、Python 的內容。Perl 和 Python 兩章的內容只是根據需要進行了簡單的介紹,但是至少它們可以引起大家的興趣。

“Part VIII, Communication and Connectivity” 是大部分讀者感興趣的。盡管有關 I/O 重定向和 TCP/IP 連接的部分都非常有趣,但是對於那些尚未了解 UNIX 內核的用戶來說,有關 UNIX 設備的內容則可能是太深奧難懂了。連接到 Windows? 上由專門一節進行介紹,這部分介紹非常不錯,但卻不夠詳細。現在本書所采用的模式是只對一些高級主題進行簡要介紹,而不詳細進行說明;詳細介紹是不可能的,否則這本書早就超過 1,000 頁了。我們可以考慮在這本書中了解一些基礎知識,然後再從一些單獨的書籍和 Web 上的教程來了解更多內容。

“Part IX, Security” 是本書最後介紹的主題。這部分內容介紹得非常詳細,而且非常有用。有關 SSH 的章節尤其有用,我保證您在此處閱讀的每章內容都會極大提高自己的 UNIX 知識。

Analytical Network and System Administration

Mark Burgess 由於編寫了 Cfengine 而變得非常有名,Cfengine 是一個令人恐怖的系統管理工具。他撰寫的書籍和文章有很多,ANSA 就是有關系統管理主題的一本非常好的教科書。

ANSA 的基本前提是,對於計算機系統的分析應該像研究物理和化學系統一樣嚴格對待。這是一個簡單的思想,但令人吃驚的是,在如今的計算機領域中卻很少被提及,這個領域喜歡采用啟發式(即 “教育猜想”)方法。上面所評論的 UPT 就是對系統管理員進行舉例說明式教育的一個很好例子;盡管這種方法沒什麼錯,但是任何提高都是逐漸累積的,而不像 ANSA 采用的方法那樣系統化。

從第 3、4 章開始介紹傅裡葉(Fourier)分析和統計起,就說明閱讀本書剩下的內容需要具有大學程度的數學背景知識。到現在為止,第 1 章到第 4 章介紹了一些通用的科學方法、實驗和觀測,以及一些簡單的系統和定義。

第 5 章介紹了有關集合、狀態和邏輯的內容,解釋了如何將配置映射成系統狀態;對系統的修改如何映射成這些狀態之間的轉換。這個概念在 ANSA 中變得越來越重要,對於理解 cfengine 軟件也非常有用。

第 6 章討論了有關圖的內容。盡管這看起來與計算機系統的數學分析沒有太大關系,但是對於思考這些問題來說,這是非常有用的一種方法,而且也是到目前為止最好的一種方法。連通性、最大通路和最小通路以及其他圖和矩陣的概念在本章中都進行了介紹。

在第 7 章和第 8 章中,進一步介紹了將系統配置作為狀態進行處理的概念。重復提到的一個關鍵字是 “變化” —— 在計算機系統中,沒有什麼東西永遠是靜態的(除非您將某部分拔出系統),因此應用變化對於維護系統的穩定狀態是很關鍵的。

第 9 章討論了有關信息的內容。本章介紹了信息流、信息的壓縮和 Shannon 法則。在最大熵分布中有這些概念的一些應用,這告訴我們如何根據 Boltzmann 分布構建 “最小聚集” 網絡。這種網絡的單點故障較少,當然這也正是它的實踐意義所在。

第 10 章介紹的是有關穩定性的內容。這在很多系統管理程序中都是一個非常重要的概念。圖中的穩定域(記住系統配置可以表示成狀態機圖中的節點)在此處也進行了介紹。除了維護系統穩定性的方法,還介紹了隨機節點刪除的問題,以及系統用來防止這種情況的方法。10.10 節中的 Hurst 指數可以判定系統在伸縮時是否是穩定的 —— 即,系統的行為是依賴於最近的事件,還是長期以來的事件。例如,這在分析 Web 服務的流量時就非常有用。

第 11 章和第 12 章介紹了資源網絡和任務管理的內容。這兩章中的分析所涉及的是系統的性能和響應能力。

第 13 章又離開了分析的主題,它給出了一些有關系統體系結構的定義。然後第 14 章討論了系統的標准化,這主要是通過降低依賴性來尋找降低系統復雜性的方法。

第 15 章討論了系統的完整性。Cfengine 的核心算法在 15.2.2 節中進行了介紹:簡單地說,只要操作是可收斂且可取代的,那麼 N 次執行 N 個操作就可以收斂於一個預期狀態。這是 Cfengine 哲學中重要的一條法則:反復應用一些微小變化,直到系統收斂於一個穩定的預期狀態為止。

在第 16 章到第 18 章中,介紹了系統維護、波動和故障方面的內容。這三章介紹了故障樹、知識度(應用 Bayes 法則)和一些通用的問題:什麼情況會導致故障,如何了解這些故障。

第 19 章介紹的是有關決策和策略的問題:例如,在系統管理員和攻擊者之間的對抗游戲中,獲勝的策略是什麼?Nash 均衡是在 19.8 節中開始介紹的一種技術,然後又從計算機系統的角度詳細進行了分析,並給出了幾個例子。

結束語

UPT 對於任何 UNIX 用戶來說都是一本好書,不管您是新手還是專家。我熱切地向您推薦本書。

ANSA 對於系統管理理論來說是一本恐怖的書籍。它有很多實際應用,因為它所強調的是計算機維護和分析的理論基礎。如果您對系統管理的收斂方法感興趣,請在閱讀 ANSA 之前了解一下 Cfengine 軟件,這樣就可以更好地理解 ANSA 的內容。

關於作者

Teodor Zlatanov 於 1999 年畢業於波士頓大學計算機工程系,獲得了碩士學位。他做程序員這份工作從 1992 年就開始了,使用過 Perl、Java、C 和 C++。他的興趣是用於文本語法分析的開放源碼、3 層客戶機/服務器數據庫體系結構、Unix 系統管理、CORBA 和項目管理。




Copyright © Linux教程網 All Rights Reserved