< >
本書的目的在讓你瞭解,管理 Unix 和 Linux 伺服器的時候,Python 語言將能夠讓你以更有效率的方式來完成各項任務。本書的每一章會探討一個特定的主題,例如並行性或資料備份,而且會透過現成的範例來介紹 Python 的解決方案。你將學會如何使用 Python 開發自己的命令列工具,以便解決各式各樣的問題。本書作者還提供了一個可自由下載的 Ubuntu 虛擬機映像,其中包含了本書的範例原始碼,以及 SNMP、IPython、SQLAlchemy 和許多其他公用程式的執行範例。閱讀本書,你將發現 Python 能夠協助你:讀取文字檔以及從中提取資訊 透過執行緒(threading)和派生(forking)同時執行多個任務 使用網路工具從一個行程讀取另一個行程的資訊 建立易於操作的可點選 GUI 程式 透過 SNMP 監控大型機器群集 掌握 IPython shell 用於取代 Bash、Korn 或 Z-Shell,或是替它們增添功能 把雲端計算(Cloud Computing)整合進你的基礎架構,以及撰寫 Google App Engine 應用程式 使用自定義的命令稿來解決獨特的資料備份問題 使用 Django、SQLAlchemy 以及 Storm ORM 來操作資料庫 使用本書以及作者所提供的 Ubuntu 虛擬機映像,你將學會如何包裝與部署你的 Python 應用程式和程式庫,以及撰寫可以在多種 Unix 和 Linux 平台上執行的程式。『無論你是否曾撰寫過 shell 命令稿,或是一個 Python 的新手,本書都適合你。Jeremy 和 Noah 細心地替範例程式碼的實際應用提供了合理的說明。許多探討程式設計的書籍往往會讓新手不知所措,不過《Python 的 Unix/Linux 系統管理應用》卻可以看到它處處替新手著想的用心。』— Ruth Suehle 與 Bascha Harris,Red Hat 雜誌Noah Gift 有十年以上的 Unix 和 Linux 使用經驗,他任職過的公司包括 Caltech、Disney Feature Animation 和 Turner Studios。他現在是 Giftcs 和 Cloud Seed Software 等公司的合夥人。Jeremy M. Jones 是 Predictix 的軟體工程師,也是 Munkware、ediplex 和 podgrabber 等開放原碼專案的作者。
他序自序第一章 簡介1.1 為什麼使用 Python?1.2 動機1.3 基礎知識1.4 在 Python 中執行命令述句1.5 在 Python 中使用函式1.6 使用 Import 述句的可重用程式碼 第二章 IPython2.1 安裝 IPython2.2 基本概念2.3 magic 函式2.4 Unix shell2.5 資訊的收集2.6 自動化與捷徑2.7 結語 第三章 文字3.1 Python 的內建型別與模組3.2 日誌檔的剖析3.3 ElementTree3.4 結語 第四章 文件與報告4.1 自動收集資訊4.2 手動收集資訊4.3 資訊的編排4.4 資訊的散佈4.5 結語 第五章 連網5.1 網路用戶端5.2 遠端程序呼叫5.3 SSH5.4 Twisted5.5 Scapy5.6 使用 Scapy 建立命令稿 第六章 資料6.1 介紹6.2 使用 os 模組進行資料的操作6.3 對資料進行複製、移動、更名和刪除的操作6.4 路徑、目錄和檔案的操作6.5 比較資料6.6 資料的合併6.7 檔案和目錄名稱的樣式比對6.8 rsync 包裹程式6.9 中介資料:用於描述資料的資料6.10 打包、壓縮、映像和回復6.11 使用 tarfile 模組 來建立 TAR 包裝檔6.12 使用 tarfile 模組來檢視 TAR 包裝檔的內容/dd> 第七章 SNMP7.1 介紹7.2 SNMP 簡介7.3 IPython 與 Net-SNMP7.4 探索資料中心7.5 以 Net-SNMP 取回多個值7.6 建立合併式 SNMP 工具7.7 擴充 Net-SNMP7.8 SNMP 裝置控制7.9 使用 Zenoss 進行企業 SNMP 整合 第八章 作業系統8.1 介紹8.2 使用 Python 進行跨平台 Unix 程式設計8.3 PyInotify8.4 OS X8.5 Red Hat Linux 系統的管理8.6 Ubuntu 的管理8.7 Solaris 系統的管理8.8 虛擬化技術8.9 雲端運算8.10 從 Linux 以 Zenoss 來管理 Windows server 第九章 套件管理9.1 介紹9.2 setuptools 與 Python egg9.3 使用 easy_install9.4 easy_install 的進階功能9.5 建立 egg9.6 進入點與控制台命令稿9.7 向 Python Package Index 註冊套件9.8 distutils9.9 Buildout9.10 使用 Buildout9.11 以 Buildout 進行開發9.12 virtualenv9.13 EPM 套件管理程式 第十章 行程與並行性10.1 介紹10.2 子行程10.3 使用 Supervisor 來管理行程10.4 使用 Screen 來管理行程10.5 Python 中的執行緒10.6 行程10.7 processing 模組10.8 Python 行程的排程10.9 daemonize 函式10.10 結語 第十一章 建構 GUI 程式11.1 GUI 建構原理11.2 建構一支簡單的 PyGTK 應用程式11.3 使用 PyGTK 建構 Apache 日誌檔觀察器11.4 使用 curses 建構 Apache 日誌檔觀察器11.5 web 應用程式11.6 Django11.7 結語 第十二章 資料的存續12.1 簡單序列化12.2 關聯序列化12.3 結語 第十三章 命令列13.1 介紹13.2 標準輸入的基本用法13.3 介紹 optparse13.4 簡單的 Optparse 使用模式13.5 Unix mashups:將 Shell 命令整合進 Python 命令列工具13.6 整合組態檔13.7 結語 第十四章 實用範例14.1 使用 Python 管理 DNS14.2 透過 Python 來使用支援 LDAP 的 OpenLDAP、Active Directory 等等14.3 Apache 日誌檔的報告14.4 FTP Mirror 附錄 回呼函式索引
程式設計師提升生產力之秘笈 專案管理之美學 第二版 美麗程式碼
購買紙本書