基礎庫:sys、os(os.path、os.stat)、time、logging、prarmiko、re、random
Python運維常用的20個庫
1、psutil是一個跨平台庫(https://github.com/giampaolo/psutil)
能夠實現獲取系統運行的進程和系統利用率(內存,CPU,磁盤,網絡等),主要用於系統監控,分析和系統資源及進程的管理。
2、IPy(http://github.com/haypo/python-ipy),輔助IP規划。
3、dnspython(http://dnspython.org)Python實現的一個DNS工具包。
4、difflib:difflib作為Python的標准模塊,無需安裝,作用是對比文本之間的差異。
5、filecmp:系統自帶,可以實現文件,目錄,遍歷子目錄的差異,對比功能。
6、smtplib:發送電子郵件模塊
7、pycurl(http://pycurl.sourceforge.net)是一個用C語言寫的libcurl Python實現,功能強大,支持的協議有:FTP,HTTP,HTTPS,TELNET等,可以理解為Linux下curl命令功能的Python封裝。(PS:PycURL在前幾天的文章里有提及過)
8、XlsxWriter:操作Excel工作表的文字,數字,公式,圖表等。
9、rrdtool:用於跟蹤對象的變化,生成這些變化的走走勢圖
10、scapy(http://www.wecdev.org/projects/scapy/)是一個強大的交互式數據包處理程序,它能夠對數據包進行偽造或解包,包括發送數據包,包嗅探,應答和反饋等功能。
11、Clam Antivirus免費開放源代碼防毒軟件,pyClamad,可以讓Python模塊直接使用ClamAV病毒掃描守護進程calmd。
12、pexpect:可以理解成Linux下expect的Python封裝,通過pexpect我們可以實現對ssh,ftp,passwd,telnet等命令行進行自動交互,而無需人工干涉來達到自動化的目的。
13、paramiko是基於Python實現的SSH2遠程安裝連接,支持認證及密鑰方式。可以實現遠程命令執行,文件傳輸,中間SSH代理等功能。相對於Pexpect,封裝的層次更高,更貼近SSH協議的功能,官網地址:http://paramiko.org(依賴:Crypto,Ecdsa,Python開發包python-devel)
14、fabric是基於Python實現的SSH命令行工具,簡化了SSH的應用程序部署及系統管理任務,它提供了系統基礎的操作組件,可以實現本地或遠程shell命令,包括命令執行,文件上傳,下載及完整執行日志輸出等功能。Fabric在paramiko的基礎上做了更高一層的封裝,操作起來更加簡單。官網地址:http://www.fabfile.org(依賴setuptools,Crypto,paramiko包支持)
15、CGIHTTPRequestHandler實現對CGI的支持。
16、ansible(http://www.ansibleworks.com/)一種集成IT系統的配置管理,應用部署,執行特定任務的開源平台。基於Python實現,由Paramiko和PyYAML兩個關鍵模塊構建。Ansibl與Saltstack最大的區別是Ansible無需在被控主機上部署任何客戶端,默認直接通過SSH通道進行遠程命令執行或下發功能。
17、YAML:是一種用來表達數據序列的編程語言。
18、playbook:一個非常簡單的配置管理和多主機部署系統。
19、saltstack(http://saltstack.com)是一個服務器基礎架構集中化管理平台,一般可以理解為簡化版的puppet和加強版的func。Saltstack基於Python語言實現,結合輕量級消息隊列ZeroMQ,與Python每三方模塊(Pyzmq,PyCrypto,Pyjinja2,python-msgpack和PyYAML等)構建。
20、func,為解決集群管理,監控問題需設計開發的系統管理基礎框架。
Python運維常用模塊
csv
:對於讀取 csv 文件來說非常便利collections
:常見數據類型的實用擴展,包括OrderedDict
、defaultdict
和namedtuple
random
:生成假隨機數字,隨機打亂序列並選擇隨機項string
:關於字符串的更多函數。此模塊還包括實用的字母集合,例如string.digits
(包含所有字符都是有效數字的字符串)re
:通過正則表達式在字符串中進行模式匹配math
:一些標准數學函數os
:與操作系統交互os.path
:os
的子模塊,用於操縱路徑名稱sys
:直接使用 Python 解釋器json
:適用於讀寫 json 文件(面向網絡開發)
實用的第三方軟件包
IPython
- 更好的交互式 Python 解釋器。requests
- 提供易於使用的方法來發出網絡請求。適用於訪問網絡 API。Flask
- 一個小型框架,用於構建網絡應用和 API。Django
- 一個功能更豐富的網絡應用構建框架。Django 尤其適合設計復雜、內容豐富的網絡應用。Beautiful Soup
- 用於解析 HTML 並從中提取信息。適合網頁數據抽取。pytest
- 擴展了 Python 的內置斷言,並且是最具單元性的模塊。PyYAML
- 用於讀寫 YAML 文件。NumPy
- 用於使用 Python 進行科學計算的最基本軟件包。它包含一個強大的 N 維數組對象和實用的線性代數功能等。pandas
- 包含高性能、數據結構和數據分析工具的庫。尤其是,pandas 提供 dataframe!matplotlib
- 二維繪制庫,會生成達到發布標准的高品質圖片,並且采用各種硬拷貝格式和交互式環境。ggplot
- 另一種二維繪制庫,基於 R’s ggplot2 庫。Pillow
- Python 圖片庫可以向你的 Python 解釋器添加圖片處理功能。pyglet
- 專門面向游戲開發的跨平台應用框架。Pygame
- 用於編寫游戲的一系列 Python 模塊。pytz
- Python 的世界時區定義。