Python自動化運維學習筆記
- 2019 年 10 月 5 日
- 筆記
psutil 跨平台的PS查看工具
執行pip install psutil 即可,或者編譯安裝都行。
# 輸出記憶體使用情況(以位元組為單位)
import psutil mem = psutil.virtual_memory() print mem.total,mem.used,mem print psutil.swap_memory() # 輸出獲取SWAP分區資訊
# 輸出CPU使用情況
cpu = psutil.cpu_stats() printcpu.interrupts,cpu.ctx_switches psutil.cpu_times(percpu=True) # 輸出每個核心的詳細CPU資訊 psutil.cpu_times().user # 獲取CPU的單項數據 [用戶態CPU的數據] psutil.cpu_count() # 獲取CPU邏輯核心數,默認logical=True psutil.cpu_count(logical=False) # 獲取CPU物理核心數
# 輸出磁碟資訊
psutil.disk_partitions() # 列出全部的分區資訊 psutil.disk_usage('/') # 顯示出指定的掛載點情況【位元組為單位】 psutil.disk_io_counters() # 磁碟總的IO個數 psutil.disk_io_counters(perdisk=True) # 獲取單個分區IO個數
# 輸出網卡資訊
psutil.net_io_counter() 獲取網路總的IO,默認參數pernic=False psutil.net_io_counter(pernic=Ture)獲取網路各個網卡的IO
# 獲取進程資訊
psutil.pids() # 列出所有進程的pid號 p = psutil.Process(2047) p.name() 列出進程名稱 p.exe() 列出進程bin路徑 p.cwd() 列出進程工作目錄的絕對路徑 p.status()進程當前狀態[sleep等狀態] p.create_time() 進程創建的時間 [時間戳格式] p.uids() p.gids() p.cputimes() 【進程的CPU時間,包括用戶態、內核態】 p.cpu_affinity() # 顯示CPU親緣關係 p.memory_percent() 進程記憶體利用率 p.meminfo() 進程的RSS、VMS資訊 p.io_counters() 進程IO資訊,包括讀寫IO數及位元組數 p.connections() 返回打開進程socket的namedutples列表 p.num_threads() 進程打開的執行緒數
#下面的例子中,Popen類的作用是獲取用戶啟動的應用程式進程資訊,以便跟蹤程式進程的執行情況
import psutil from subprocess import PIPE p =psutil.Popen(["/usr/bin/python" ,"-c","print 'helloworld'"],stdout=PIPE) p.name() p.username() p.communicate() p.cpu_times()
# 其它
psutil.users() # 顯示當前登錄的用戶,和Linux的who命令差不多 # 獲取開機時間 psutil.boot_time() 結果是個UNIX時間戳,下面我們來轉換它為標準時間格式,如下: datetime.datetime.fromtimestamp(psutil.boot_time()) # 得出的結果不是str格式,繼續進行轉換 datetime.datetime.fromtimestamp(psutil.boot_time()).strftime('%Y-%m-%d%H:%M:%S')