使用python來編寫腳本簡化平常的運維工做是Python的一個重要用途, 在Linux下, 有許多系統命令可讓咱們時刻監控系統運行狀態, 如:ps, top, free等, 要獲取這些系統信息, Python能夠經過subprocess模塊調用並獲取結果, 可是須要很複雜的解析代碼python
在python中獲取系統信息的另外一個辦法就是使用psutil這個第三方模塊, psutil是python system and process utilities的縮寫, 意思是python的監控系統和進程管理的工具, 是一個功能很強大的跨平臺系統管理庫, 能夠實現命令中相似ps, top, Isof, netstat, ifconfig, who, df, kill, free, nice, ionice, iostat, iotop等等命令功能, 而且以python內置的數據結構形式返回, 目前psutil支持的系統有linux, windows, os X和freeBSD等linux
psutil是一個第三方的開源項目, 所以須要先安裝再使用ios
pip3 install psutilwindows
使用python3進入交互模式, 查看版本緩存
psutil.cpu_xxx()網絡
選項 | 含義 |
cpu_count() | 邏輯cpu核數數據結構 能夠經過設置logical=False來返回物理CPU的個數運維 psutil.cpu_count(logical=False)ionic |
cpu_times() | 各類時間工具 user: 用戶時間, 被正經常使用戶進程所佔用的時間, linux下也包括訪客時間 system: 系統時間, 在內核中執行的進程佔有CPU的時間 |
cpu_percent() | 獲取CPU使用率 interval=0.5, 設置刷新時間爲0.5秒 percpu=True, 獲取每一個cpu的使用率 |
xxx_memory()
選項 | 含義 |
virtual_memory() | 系統中內存利用率信息以下: tatal: 物理內存總數 available:可用內存 used:已被佔用內存 free:空閒內存, 指徹底未被使用的內存 cache:緩存的使用數目 buffer:緩衝的使用數目 swap:交換分區的使用數目 |
swap_memory() | 用於獲取交換分區的信息 |
disk_xxx()
選項 | 含義 |
disk_partitions() | 用於獲取完整的分區信息(邏輯設備名, 掛載點權限, 文件系統等等), 返回一個元組 |
disk_usage() | 返回硬盤, 分區或目錄狀況, 單位字節 "/"表示獲取根目錄(系統)磁盤使用狀況 |
disk_io_counters() | 獲取硬盤的I/O個數, 讀寫信息, 返回一個元組 perdisk參數, 當爲True時, 返回每個磁盤的信息, 此時返回一個字典 |
net_xxx()
選項 | 含義 |
net_io_counters() | 用於獲取總的網絡I/O信息, 返回一個元組, 默認pernic=False bytes_sent: 發出的比特數 bytes_recv: 接收的比特數 packets_sent:發出的包的數量 packets_recv:接收的包數量 errin: 接收的錯誤總數 errout:發出時的錯誤總數 dropin:發過來時的丟包數量 dropout:發出時的丟包數量 |
net_connection() | 返回一個系統中的套接字連接信息, 以一個列表形式返回 |
psutil.boot_time()
psutil.users() 獲取用戶信息