Python Linux系統(tǒng)管理與自動(dòng)化運(yùn)維
定 價(jià):89 元
叢書名:Linux/Unix技術(shù)叢書
- 作者:賴明星
- 出版時(shí)間:2017/9/1
- ISBN:9787111578659
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP316.85
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16開(kāi)
本書共分11章,每一章都可以單獨(dú)成冊(cè)。讀者可以從頭開(kāi)始閱讀,也可以選擇自己感興趣的章節(jié)閱讀。需要強(qiáng)調(diào)的是,本書是一本實(shí)戰(zhàn)類的書籍,因此,本書強(qiáng)調(diào)實(shí)踐的重要性。很多工程師學(xué)習(xí)Python,學(xué)完就忘,忘了再學(xué),循環(huán)往復(fù),就是因?yàn)閷?shí)踐不充分導(dǎo)致的。本書包含了大量的實(shí)戰(zhàn)案例,可以很好地作為Python的進(jìn)階教材,讀者也可以舉一反三,編寫自己的管理程序。
Preface?前 言為何寫作本書我第一次接觸Python是在2008年的時(shí)候,當(dāng)時(shí)還是一名大學(xué)生。有一位非常優(yōu)秀的學(xué)長(zhǎng)通過(guò)《黑客與畫家》這本書了解到Python語(yǔ)言,并且認(rèn)為Python將在未來(lái)幾年迅猛發(fā)展,在各個(gè)應(yīng)用領(lǐng)域都會(huì)大有可為。因此,在國(guó)內(nèi)還沒(méi)有廣泛使用Python語(yǔ)言時(shí),這位學(xué)長(zhǎng)便推薦我學(xué)習(xí)Python,F(xiàn)在的Python語(yǔ)言,流行程度已不用我多言,這一方面證實(shí)了Paul Graham(《黑客與畫家》的作者)的遠(yuǎn)見(jiàn)卓識(shí),同時(shí),也反映出這位優(yōu)秀學(xué)長(zhǎng)的聰明睿智。從這件事中,我深切地感受到要多與人交流,尤其是要與那些比自己優(yōu)秀的人交流。正是出于和大家交流的想法,我將這些年的Python使用心得,以及在網(wǎng)易云開(kāi)發(fā)與運(yùn)維的經(jīng)驗(yàn)匯集成一本書,也就是你現(xiàn)在看到的這本書。 如果大家身處互聯(lián)網(wǎng),一定能夠切身地感受到Python語(yǔ)言的流行程度。Python語(yǔ)言由于其簡(jiǎn)單易學(xué)、語(yǔ)法優(yōu)美、應(yīng)用領(lǐng)域廣泛等諸多優(yōu)點(diǎn),俘獲了大批的粉絲。通過(guò)Google搜索指數(shù)可以看到,Python語(yǔ)言在最近兩年出現(xiàn)了爆發(fā)式的增長(zhǎng),其在編程語(yǔ)言排行榜上的排名,從第8名一躍上升到第4名,并且有繼續(xù)上升的趨勢(shì)。越來(lái)越多的公司高薪招聘Python工程師,越來(lái)越多的世界名校開(kāi)始講授Python語(yǔ)言,越來(lái)越多的項(xiàng)目使用Python語(yǔ)言進(jìn)行開(kāi)發(fā)。因此,從各個(gè)角度來(lái)說(shuō),Python都將大有可為,學(xué)習(xí)Python將是一個(gè)正確的選擇。 伴隨著云計(jì)算的高速發(fā)展,Python在系統(tǒng)管理領(lǐng)域也表現(xiàn)不俗。著名的云計(jì)算平臺(tái)OpenStack就是使用Python語(yǔ)言開(kāi)發(fā)的,各大云計(jì)算廠商也選擇使用Python開(kāi)發(fā)自己的內(nèi)部系統(tǒng)。并且,由于云計(jì)算廠商托管的都是大規(guī)模服務(wù)器,為了提高運(yùn)維效率、節(jié)約人力成本、快速響應(yīng)需求,各大云計(jì)算廠商都不約而同地使用Python進(jìn)行大規(guī)模服務(wù)器的部署和運(yùn)維。 Python在Linux系統(tǒng)管理中,已經(jīng)擔(dān)任了非常重要的角色。但是,講解Python在Linux系統(tǒng)管理中應(yīng)用的書籍卻寥寥無(wú)幾,更多都是專注于Python語(yǔ)言、Python爬蟲(chóng)和Python Web開(kāi)發(fā)。難得的幾本也僅僅是介紹Python相關(guān)工具的使用而已。由于互聯(lián)網(wǎng)業(yè)務(wù)的復(fù)雜性和多樣性,這遠(yuǎn)不能滿足互聯(lián)網(wǎng)公司的需求,公司更希望工程師能夠靈活地使用Python,根據(jù)業(yè)務(wù)需求開(kāi)發(fā)自己的工具和系統(tǒng)。因此,本書不僅會(huì)介紹Python語(yǔ)言編寫的系統(tǒng)管理工具,還會(huì)講解如何使用Python構(gòu)建自己的系統(tǒng)管理工具。 主要內(nèi)容特色本書介紹了Python語(yǔ)言在Linux系統(tǒng)管理中的應(yīng)用,包括編寫Python腳本管理Linux系統(tǒng),使用Python編寫的自動(dòng)化工具管理Linux系統(tǒng),以及使用Python打造專屬的管理工具等。 本書以Linux系統(tǒng)管理為線索,以Python語(yǔ)言為載體,介紹了大量Python語(yǔ)言的應(yīng)用案例。通過(guò)學(xué)習(xí)本書,不但可以使用Python語(yǔ)言管理Linux系統(tǒng),也為Python解決其他領(lǐng)域問(wèn)題打下了堅(jiān)實(shí)的基礎(chǔ)。書中每一章都會(huì)解決某一類問(wèn)題,并且提供了問(wèn)題的答案。如Python管理Linux文件和目錄,使用Python監(jiān)控Linux系統(tǒng),使用Python編寫自動(dòng)化工具,使用Python進(jìn)行自動(dòng)化運(yùn)維等。 通過(guò)學(xué)習(xí)本書,你可以: 掌握Python生態(tài)工具,提高自己的開(kāi)發(fā)效率;學(xué)會(huì)如何使用Python構(gòu)建自己的命令行工具;用Python編寫可維護(hù)性更強(qiáng)的文本處理程序;全方位監(jiān)控Linux系統(tǒng);使用Python自動(dòng)化部署應(yīng)用;管理操作系統(tǒng)配置;使用Python打造MySQL專家系統(tǒng);通過(guò)Python發(fā)送電子郵件。 本書讀者對(duì)象本書不是一本講解Python編程語(yǔ)言的書籍,也不是教授如何使用Python運(yùn)維工具的書籍,而是一本講解Python在Linux系統(tǒng)管理中應(yīng)用的實(shí)戰(zhàn)書籍。如果你還沒(méi)學(xué)過(guò)Python編程語(yǔ)言,建議先學(xué)習(xí)Python語(yǔ)言以后,再來(lái)閱讀本書。如果你從來(lái)沒(méi)有使用過(guò)Linux,書中部分章節(jié)可能會(huì)讓你感到困惑,不過(guò)依然有很多章節(jié)可以參考。因此,想要更好地學(xué)習(xí)本書內(nèi)容,讀者需要具備以下條件: Python語(yǔ)言基礎(chǔ)知識(shí);Linux使用經(jīng)驗(yàn);了解SSH的使用。 本書雖然主要講解Python在Linux系統(tǒng)管理中的應(yīng)用,但是,書中很多例子都具有更加廣泛的應(yīng)用場(chǎng)景。本書的最大特色是提供了大量的實(shí)戰(zhàn)案例,無(wú)論是剛學(xué)完P(guān)ython語(yǔ)言,正在尋找Python實(shí)戰(zhàn)案例的讀者,還是想要學(xué)習(xí)Python在Linux系統(tǒng)管理中如何應(yīng)用的讀者,都能從中受益。 綜上所述,本書適合以下幾類讀者: 使用Python語(yǔ)言的運(yùn)維工程師;想要提高Python技能的開(kāi)發(fā)工程師;想要了解Python在互聯(lián)網(wǎng)應(yīng)用的在校學(xué)生;所有對(duì)Python實(shí)戰(zhàn)感興趣的讀者。 如何閱讀本書本書共分11章,每一章都可以單獨(dú)成冊(cè)。你可以從頭開(kāi)始閱讀,也可以選擇自己感興趣的章節(jié)閱讀。 第1章介紹了Python語(yǔ)言的優(yōu)缺點(diǎn)和Python在Linux系統(tǒng)管理領(lǐng)域的應(yīng)用,這一章主要回答“為什么學(xué)習(xí)Python”這個(gè)問(wèn)題。 第2章介紹了多個(gè)Python生態(tài)工具。充分利用這些工具,不但可以有效提高工作效率,還能形成統(tǒng)一的代碼風(fēng)格。此外,本章還會(huì)介紹如何解決Python中的環(huán)境依賴問(wèn)題,包括如何在一臺(tái)服務(wù)器上使用不同的Python版本,如何對(duì)不同的項(xiàng)目安裝不同的依賴而不相互影響。相信通過(guò)學(xué)習(xí)本章介紹的工具,能夠幫助你解決在學(xué)習(xí)Python過(guò)程中遇到的環(huán)境問(wèn)題。 第3~7章主要講解使用Python編寫腳本管理Linux,包括如何使用Python構(gòu)建命令行工具、
網(wǎng)易杭州研究院云平臺(tái)開(kāi)發(fā)工程師,還曾擔(dān)任網(wǎng)易的數(shù)據(jù)庫(kù)內(nèi)核開(kāi)發(fā)工程師和高級(jí)運(yùn)維工程師。是網(wǎng)易云數(shù)據(jù)庫(kù)MySQL云平臺(tái)、MongoDB云平臺(tái)的核心開(kāi)發(fā)人員,網(wǎng)易大規(guī)模MySQL系統(tǒng)運(yùn)維的負(fù)責(zé)人,獨(dú)立完成MySQL存儲(chǔ)引擎的TNT自動(dòng)化研發(fā)和測(cè)試。精通Python、shell、linux、MySQL、java,有7年linux和Python相關(guān)經(jīng)驗(yàn);熟悉MySQL、redis、leveldb源碼,近期關(guān)注大數(shù)據(jù)相關(guān)技術(shù)。大會(huì)分享:2016年在全球敏捷運(yùn)維峰會(huì)、PHP China、IMG社區(qū)、Oracle技術(shù)嘉年華分享MySQL和Python相關(guān)技術(shù)。
目 錄?Contents推薦序一推薦序二推薦序三前 言第1章 Python語(yǔ)言與Linux系統(tǒng)管理 11.1 Python語(yǔ)言有多流行 11.2 Python語(yǔ)言為什么流行 31.3 Python語(yǔ)言有什么缺點(diǎn) 41.4 Python語(yǔ)言的應(yīng)用場(chǎng)景 41.5 為什么Python適合Linux系統(tǒng)管理 51.6 使用Python 2還是Python 3 6第2章 Python生態(tài)工具 92.1 Python內(nèi)置小工具 92.1.1 1秒鐘啟動(dòng)一個(gè)下載服務(wù)器 102.1.2 字符串轉(zhuǎn)換為JSON 102.1.3 檢查第三方庫(kù)是否正確安裝 112.2 pip高級(jí)用法 122.2.1 pip介紹 122.2.2 pip常用命令 122.2.3 加速pip安裝的技巧 142.3 Python編輯器 152.3.1 編寫Python的vim插件 152.3.2 Windows下Python編輯器PyCharm介紹 172.4 Python編程輔助工具 182.4.1 Python交互式編程 182.4.2 使用IPython交互式編程 202.4.3 jupyter的使用 292.5 Python調(diào)試器 312.5.1 標(biāo)準(zhǔn)庫(kù)的pdb 322.5.2 開(kāi)源的ipdb 342.6 Python代碼規(guī)范檢查 342.6.1 PEP 8編碼規(guī)范介紹 342.6.2 使用pycodestyle檢查代碼規(guī)范 362.6.3 使用autopep8將代碼格式化 372.7 Python工作環(huán)境管理 392.7.1 使用pyenv管理不同的Python版本 392.7.2 使用virtualenv管理不同的項(xiàng)目 422.8 本章總結(jié) 43第3章 打造命令行工具 443.1 與命令行相關(guān)的Python語(yǔ)言特性 443.1.1 使用sys.argv獲取命令行參數(shù) 453.1.2 使用sys.stdin和fileinput讀取標(biāo)準(zhǔn)輸入 463.1.3 使用SystemExit異常打印錯(cuò)誤信息 483.1.4 使用getpass庫(kù)讀取密碼 493.2 使用ConfigParse解析配置文件 493.3 使用argparse解析命令行參數(shù) 523.3.1 ArgumentParse解析器 523.3.2 模仿MySQL客戶端的命令行參數(shù) 543.4 使用logging記錄日志 553.4.1 日志的作用 553.4.2 Python的logging模塊 563.4.3 配置日志格式 563.5 與命令行相關(guān)的開(kāi)源項(xiàng)目 593.5.1 使用click解析命令行參數(shù) 593.5.2 使用prompt_toolkit打造交互式命令行工具 613.6 本章總結(jié) 64第4章 文本處理 654.1 字符串常量 664.1.1 定義字符串 664.1.2 字符串是不可變的有序集合 684.1.3 字符串函數(shù) 714.1.4 案例:使用Python分析Apache的訪問(wèn)日志 794.1.5 字符串格式化 834.2 正則表達(dá)式 854.2.1 正則表達(dá)式語(yǔ)法 864.2.2 利用re庫(kù)處理正則表達(dá)式 874.2.3 常用的re方法 904.2.4 案例:獲取HTML頁(yè)面中的所有超鏈接 944.3 字符集編碼 944.3.1 編碼歷史 954.3.2 UTF-8編碼 964.3.3 從字符集的問(wèn)題說(shuō)起 984.3.4 Python 2和Python 3中的Unicode 994.4 Jinja2模板 1014.4.1 模板介紹 1024.4.2 Jinja2語(yǔ)法入門 1024.4.3 Jinja2實(shí)戰(zhàn) 1084.4.4 案例:使用Jinja2生成HTML表格和XML配置文件 1124.5 本章總結(jié) 116第5章 Linux系統(tǒng)管理 1175.1 文件讀寫 1185.1.1 Python內(nèi)置的open函數(shù) 1185.1.2 避免文件句柄泄露 1195.1.3 常見(jiàn)的文件操作函數(shù) 1205.1.4 Python的文件是一個(gè)可迭代對(duì)象 1215.1.5 案例:將文件中所有單詞的首字母變成大寫 1225.2 文件與文件路徑管理 1235.2.1 使用os.path進(jìn)行路徑和文件管理 1235.2.2 使用os模塊管理文件和目錄 1265.2.3 案例:打印最常用的10條Linux命令 1285.3 查找文件 1295.3.1 使用fnmatch找到特定的文件 1295.3.2 使用glob找到特定的文件 1305.3.3 使用os.walk遍歷目錄樹(shù) 1315.3.4 案例:找到目錄下最大(或最老)的十個(gè)文件 1325.4 高級(jí)文件處理接口shutil 1345.4.1 復(fù)制文件和文件夾 1355.4.2 文件和文件夾的移動(dòng)與改名 1355.4.3 刪除目錄 1365.5 文件內(nèi)容管理 1365.5.1 目錄和文件比較 1375.5.2 MD5校驗(yàn)和比較 1395.5.3 案例:找到目錄下的重復(fù)文件 1395.6 使用Python管理壓縮包 1415.6.1 使用tarfile庫(kù)讀取與創(chuàng)建tar包 1415.6.2 使用tarfile庫(kù)讀取與創(chuàng)建壓縮包 1425.6.3 案例:備份指定文件到壓縮包中 1425.6.4 使用zipfile庫(kù)創(chuàng)建和讀取zip壓縮包 1435.6.5 案例:暴力破解zip壓縮包的密碼 1445.6.6 使用shutil創(chuàng)建和讀取壓縮包 1465.7 Python中執(zhí)行外部命令 1485.7.1 subprocess模塊簡(jiǎn)介 1495.7.2 subprocess模塊的便利函數(shù) 1495.7.3 subprocess模塊的Popen類 1515.8 綜合案例:使用Python部署MongoDB 1525.9 本章總結(jié) 155第6章 使用Python監(jiān)控Linux系統(tǒng) 1566.1 Python編寫的監(jiān)控工具 1576.1.1 多功能系統(tǒng)資源統(tǒng)計(jì)工具dstat 1576.1.2 交互式監(jiān)控工具glances 1606.2 使用Python打造自己的監(jiān)控工具 1636.2.1 Linux系統(tǒng)的/proc目錄介紹 1636.2.2 proc目錄下常用文件介紹 1646.2.3 進(jìn)程目錄下常用文件介紹 1656.2.4 利用/proc目錄找到被刪除的文件 1666.2.5 使用shell腳本監(jiān)控Linux 1686.2.6 使用Python監(jiān)控Linux 1706