发表于2024-12-23
Python Linux係統管理與自動化運維 pdf epub mobi txt 電子書 下載 2024
騰訊技術總監薑承堯、網易技術總監餘利華鼎力推薦,是作者運維和管理網易考拉、網易雲音樂、網易新聞等大型互聯網産品的經驗總結
作者技術功底深厚,時間經驗豐富,曾在網易擔任資深平颱開發工程師、數據庫內核工程師和高級運維工程師,現就職於騰訊CDG(企業發展事業群)
來自於網易和騰訊等大型互聯網公司的一綫經驗,從工具、方法、實戰三個維度講解瞭利用Python進行Linux係統管理和自動化運維的*佳實踐
Python是係統管理和運維領域的一把利器,本書是作者多年來在網易的雲平颱開發、數據庫內核開發、係統管理與運維領域使用Python的經驗總結。
本書以Linux係統管理為綫索,以Python語言為載體,從工具、腳本、方法等多個方麵講解瞭如何在Linux係統管理和自動化運維中使用Python來解決各種問題,包含大量案例和*佳實踐。
全書邏輯上分為5個部分:
介紹篇(第1章):介紹瞭Python語言的優缺點和Python在Linux係統管理領域的應用;
工具篇(第2章):講解瞭多個Python生態工具,充分利用這些工具,不但可以有效地提高工作效率,而且還能形成統一的代碼風格;
腳本篇(第3~7章):詳細講解瞭如何使用Python編寫腳本管理Linux,包括如何使用Python構建命令行工具、如何處理文本、如何進行係統管理、如何監控Linux係統,以及如何處理文檔與報告,包含大量的Python實戰案例。
自動化篇(第8~10章):主要講解瞭多個Python語言開發工具,包括網絡嗅探工具Scapy、自動化運維工具Fabric、自動部署工具Ansible等,靈活使用這些工具,可以有效地提高運維工程師的工作效率。
綜閤案例篇(第11章):介紹瞭一個綜閤案例,即使用Python打造MySQL數據庫專傢係統。其中詳細講解Python中的高級語言特性和係統架構,充分理解這一章的內容,相信讀者的Python水平能有一個較大的提升。
賴明星
資深雲平颱開發工程師、數據庫內核開發工程師和高級運維工程師,現就職於騰訊CDG(企業發展事業群),曾就職於網易,網易雲數據庫MySQL雲平颱、MongoDB雲平颱的核心開發人員,網易大規模MySQL係統運維的負責人,獨立完成MySQL存儲引擎的TNT自動化研發和測試。
國內知名的Python技術專傢和Python技術的積極推廣者,知乎專欄《Python高手之路》的所有者和維護者,在網絡上撰寫瞭大量優質的原創文章,進行瞭多次高質量的技術分享。
除Python外,對Linux和MySQL也有深入研究,多次在 Oracle 技術嘉年華、IMG(Inside MySQL Group)技術沙龍、全球敏捷運維峰會、PHPCon China等知名技術大會分享MySQL*佳實踐。
IMG社區核心成員,IMG社區自成立以來,努力打造純淨的技術氛圍,積極推動技術分享,匯集瞭各個企業的技術大牛,在技術社區中有著很大的影響力,掃描下方二維碼加入IMG社區。
明星把自己這些年來在網易運維和管理Linux係統的過程中遇到的各種難題和總結的各種經驗與方法全部呈現在瞭這本書中,對同行應該非常有參考價值。本書最後的MySQL專傢係統是一個集大成的運維開發係統,讀者可以通過這個案例更地理解Python在運維中的實際應用。我將此書推薦給所有技術圈的碼農們,也希望大傢早日體會到Pythonic的*高奧義。
——薑承堯 騰訊技術總監
市麵上有不少講解Python編程語言的書籍, 也有不少關於Linux係統管理書籍,但是如何利用Python解決Linux係統管理問題的書籍卻寥寥無幾。 明星是網易的數據庫專傢,是數據庫雲服務(RDS)的核心開發人員。 RDS産品使用Python語言成功管理瞭成韆上萬個Linux主機和MySQL實例,成功支撐瞭考拉、網易雲音樂、網易新聞等大型互聯網産品, 在RDS研發運營過程中, 作者積纍瞭大量一綫工作經驗和案例,通過這一本書的方式分享給大傢,希望對大傢有所幫助。
——餘利華 網易技術總監
目錄?Contents
推薦序一
推薦序二
推薦序三
前言
第1章Python語言與Linux係統管理1
1.1Python語言有多流行1
1.2Python語言為什麼流行3
1.3Python語言有什麼缺點4
1.4Python語言的應用場景4
1.5為什麼Python適閤Linux係統管理5
1.6使用Python2還是Python36
第2章Python生態工具9
2.1Python內置小工具9
2.1.11秒鍾啓動一個下載服務器10
2.1.2字符串轉換為JSON10
2.1.3檢查第三方庫是否正確安裝11
2.2pip高級用法12
2.2.1pip介紹12
2.2.2pip常用命令12
2.2.3加速pip安裝的技巧14
2.3Python編輯器15
2.3.1編寫Python的vim插件15
2.3.2Windows下Python編輯器PyCharm介紹17
2.4Python編程輔助工具18
2.4.1Python交互式編程18
2.4.2使用IPython交互式編程20
2.4.3jupyter的使用29
2.5Python調試器31
2.5.1標準庫的pdb32
2.5.2開源的ipdb34
2.6Python代碼規範檢查34
2.6.1PEP8編碼規範介紹34
2.6.2使用pycodestyle檢查代碼規範36
2.6.3使用autopep8將代碼格式化37
2.7Python工作環境管理39
2.7.1使用pyenv管理不同的Python版本39
2.7.2使用virtualenv管理不同的項目42
2.8本章總結43
第3章打造命令行工具44
3.1與命令行相關的Python語言特性44
3.1.1使用sys.argv獲取命令行參數45
3.1.2使用sys.stdin和fileinput讀取標準輸入46
3.1.3使用SystemExit異常打印錯誤信息48
3.1.4使用getpass庫讀取密碼49
3.2使用ConfigParse解析配置文件49
3.3使用argparse解析命令行參數52
3.3.1ArgumentParse解析器52
3.3.2模仿MySQL客戶端的命令行參數54
3.4使用logging記錄日誌55
3.4.1日誌的作用55
3.4.2Python的logging模塊56
3.4.3配置日誌格式56
3.5與命令行相關的開源項目59
3.5.1使用click解析命令行參數59
3.5.2使用prompt_toolkit打造交互式命令行工具61
3.6本章總結64
第4章文本處理65
4.1字符串常量66
4.1.1定義字符串66
4.1.2字符串是不可變的有序集閤68
4.1.3字符串函數71
4.1.4案例:使用Python分析Apache的訪問日誌79
4.1.5字符串格式化83
4.2正則錶達式85
4.2.1正則錶達式語法86
4.2.2利用re庫處理正則錶達式87
4.2.3常用的re方法90
4.2.4案例:獲取HTML頁麵中的所有超鏈接94
4.3字符集編碼94
4.3.1編碼曆史95
4.3.2UTF-8編碼96
4.3.3從字符集的問題說起98
4.3.4Python2和Python3中的Unicode99
4.4Jinja2模闆101
4.4.1模闆介紹102
4.4.2Jinja2語法入門102
4.4.3Jinja2實戰108
4.4.4案例:使用Jinja2生成HTML錶格和XML配置文件112
4.5本章總結116
第5章Linux係統管理117
5.1文件讀寫118
5.1.1Python內置的open函數118
5.1.2避免文件句柄泄露119
5.1.3常見的文件操作函數120
5.1.4Python的文件是一個可迭代對象121
5.1.5案例:將文件中所有單詞的首字母變成大寫122
5.2文件與文件路徑管理123
5.2.1使用os.path進行路徑和文件管理123
5.2.2使用os模塊管理文件和目錄126
5.2.3案例:打印最常用的10條Linux命令128
5.3查找文件129
5.3.1使用fnmatch找到特定的文件129
5.3.2使用glob找到特定的文件130
5.3.3使用os.walk遍曆目錄樹131
5.3.4案例:找到目錄下最大(或最老)的十個文件132
5.4高級文件處理接口shutil134
5.4.1復製文件和文件夾135
5.4.2文件和文件夾的移動與改名135
5.4.3刪除目錄136
5.5文件內容管理136
5.5.1目錄和文件比較137
5.5.2MD5校驗和比較139
5.5.3案例:找到目錄下的重復文件139
5.6使用Python管理壓縮包141
5.6.1使用tarfile庫讀取與創建tar包141
5.6.2使用tarfile庫讀取與創建壓縮包142
5.6.3案例:備份指定文件到壓縮包中142
5.6.4使用zipfile庫創建和讀取zip壓縮包143
5.6.5案例:暴力破解zip壓縮包的密碼144
5.6.6使用shutil創建和讀取壓縮包146
5.7Python中執行外部命令148
5.7.1subprocess模塊簡介149
5.7.2subprocess模塊的便利函數149
5.7.3subprocess模塊的Popen類151
5.8綜閤案例:使用Python部署MongoDB152
5.9本章總結155
第6章使用Python監控Linux係統156
6.1Python編寫的監控工具157
6.1.1多功能係統資源統計工具dstat157
6.1.2交互式監控工具glances160
6.2使用Python打造自己的監控工具163
6.2.1Linux係統的/proc目錄介紹163
6.2.2proc目錄下常用文件介紹164
6.2.3進程目錄下常用文件介紹165
6.2.4利用/proc目錄找到被刪除的文件166
6.2.5使用shell腳本監控Linux168
6.2.6使用Python監控Linux170
6
Preface?前言為何寫作本書我第一次接觸Python是在2008年的時候,當時還是一名大學生。有一位非常優秀的學長通過《黑客與畫傢》這本書瞭解到Python語言,並且認為Python將在未來幾年迅猛發展,在各個應用領域都會大有可為。因此,在國內還沒有廣泛使用Python語言時,這位學長便推薦我學習Python。現在的Python語言,流行程度已不用我多言,這一方麵證實瞭PaulGraham(《黑客與畫傢》的作者)的遠見卓識,同時,也反映齣這位優秀學長的聰明睿智。從這件事中,我深切地感受到要多與人交流,尤其是要與那些比自己優秀的人交流。正是齣於和大傢交流的想法,我將這些年的Python使用心得,以及在網易雲開發與運維的經驗匯集成一本書,也就是你現在看到的這本書。
如果大傢身處互聯網,一定能夠切身地感受到Python語言的流行程度。Python語言由於其簡單易學、語法優美、應用領域廣泛等諸多優點,俘獲瞭大批的粉絲。通過Google搜索指數可以看到,Python語言在最近兩年齣現瞭爆發式的增長,其在編程語言排行榜上的排名,從第8名一躍上升到第4名,並且有繼續上升的趨勢。越來越多的公司高薪招聘Python工程師,越來越多的世界名校開始講授Python語言,越來越多的項目使用Python語言進行開發。因此,從各個角度來說,Python都將大有可為,學習Python將是一個正確的選擇。
伴隨著雲計算的高速發展,Python在係統管理領域也錶現不俗。著名的雲計算平颱OpenStack就是使用Python語言開發的,各大雲計算廠商也選擇使用Python開發自己的內部係統。並且,由於雲計算廠商托管的都是大規模服務器,為瞭提高運維效率、節約人力成本、快速響應需求,各大雲計算廠商都不約而同地使用Python進行大規模服務器的部署和運維。
Python在Linux係統管理中,已經擔任瞭非常重要的角色。但是,講解Python在Linux係統管理中應用的書籍卻寥寥無幾,更多都是專注於Python語言、Python爬蟲和PythonWeb開發。難得的幾本也僅僅是介紹Python相關工具的使用而已。由於互聯網業務的復雜性和多樣性,這遠不能滿足互聯網公司的需求,公司更希望工程師能夠靈活地使用Python,根據業務需求開發自己的工具和係統。因此,本書不僅會介紹Python語言編寫的係統管理工具,還會講解如何使用Python構建自己的係統管理工具。
主要內容特色本書介紹瞭Python語言在Linux係統管理中的應用,包括編寫Python腳本管理Linux係統,使用Python編寫的自動化工具管理Linux係統,以及使用Python打造專屬的管理工具等。
本書以Linux係統管理為綫索,以Python語言為載體,介紹瞭大量Python語言的應用案例。通過學習本書,不但可以使用Python語言管理Linux係統,也為Python解決其他領域問題打下瞭堅實的基礎。書中每一章都會解決某一類問題,並且提供瞭問題的答案。如Python管理Linux文件和目錄,使用Python監控Linux係統,使用Python編寫自動化工具,使用Python進行自動化運維等。
通過學習本書,你可以:
掌握Python生態工具,提高自己的開發效率;學會如何使用Python構建自己的命令行工具;用Python編寫可維護性更強的文本處理程序;全方位監控Linux係統;使用Python自動化部署應用;管理操作係統配置;使用Python打造MySQL專傢係統;通過Python發送電子郵件。
本書讀者對象本書不是一本講解Python編程語言的書籍,也不是教授如何使用Python運維工具的書籍,而是一本講解Python在Linux係統管理中應用的實戰書籍。如果你還沒學過Python編程語言,建議先學習Python語言以後,再來閱讀本書。如果你從來沒有使用過Linux,書中部分章節可能會讓你感到睏惑,不過依然有很多章節可以參考。因此,想要更好地學習本書內容,讀者需要具備以下條件:
Python語言基礎知識;Linux使用經驗;瞭解SSH的使用。
本書雖然主要講解Python在Linux係統管理中的應用,但是,書中很多例子都具有更加廣泛的應用場景。本書的最大特色是提供瞭大量的實戰案例,無論是剛學完Python語言,正在尋找Python實戰案例的讀者,還是想要學習Python在Linux係統管理中如何應用的讀者,都能從中受益。
綜上所述,本書適閤以下幾類讀者:
使用Python語言的運維工程師;想要提高Python技能的開發工程師;想要瞭解Python在互聯網應用的在校學生;所有對Python實戰感興趣的讀者。
如何閱讀本書本書共分11章,每一章都可以單獨成冊。你可以從頭開始閱讀,也可以選擇自己感興趣的章節閱讀。
第1章介紹瞭Python語言的優缺點和Python在Linux係統管理領域的應用,這一章主要迴答“為什麼學習Python”這個問題。
第2章介紹瞭多個Python生態工具。充分利用這些工具,不但可以有效提高工作效率,還能形成統一的代碼風格。此外,本章還會介紹如何解決Python中的環境依賴問題,包括如何在一颱服務器上使用不同的Python版本,如何對不同的項目安裝不同的依賴而不相互影響。相信通過學習本章介紹的工具,能夠幫助你解決在學習Python過程中遇到的環境問題。
第3~7章主要講解使用Python編寫腳本管理Linux,包括如何使用Python構建命令行工具、
很不錯的已經收到瞭,下來好好看看
評分很實用的一本書
評分送貨速度飛快,商品不錯。。
評分幫朋友買,圖書日特價,他很滿意。
評分簡單的翻瞭一下 內容比較全麵,包裝也完整
評分發貨很快,包裝完整,定瞭很多書,快遞師傅送過來不容易
評分東西很好是正品,快遞速度很快
評分學習學習學習學習學習學習
評分搞活動時候買的,買過很多次瞭,很實惠,之後還會繼續光顧。
Python Linux係統管理與自動化運維 pdf epub mobi txt 電子書 下載