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')