最近開始學習Python自動化運維,特記下筆記。
學習中使用的系統是Kali Linux2017.2,Python版本爲2.7.14+
因爲在KALI裏面沒有自帶psutil模塊,需要使用pip進行安裝
安裝完成後進入python交互模式
查看psutil 的幫助信息,可以發現psutil支持跨平臺的環境,同時也支持python3
獲取CPU信息
使用cpu_times獲取CPU信息,用戶/系統/空閒時間
也可以獲取單條信息
如果需要獲取所有CPU核心的信息需要加一個參數percpu=True
獲取CPU核心個數,方法爲cpu_count()
如果只要獲取CPU物理核心的數量需要加一個參數,logical=False 注:logical默認爲True
獲取內存信息
內存信息可以使用virtual_memory()和swap_memory()方法進行獲取 注:單位爲字節
只獲取內存總數
只獲取空閒總數
獲取swap分區信息,使用swap_memory()方法進行獲取
獲取磁盤信息
獲取磁盤分區信息可以使用disk_partitions()方法獲取
可以使用disk_usage()方法獲取分區的使用情況
獲取硬盤IO信息可以使用disk_io_counters()方法獲取
如果要獲取單個分區的IO數等情況,需要在disk_io_counters()下加一個參數,perdisk=True
獲取網絡信息
獲取網卡的總IO等信息可以使用net_io_counters()方法
如果需要輸出每一個網卡的IO數需要加一個參數pernic=True
也可以獲取網卡IO的單個信息
獲取其他的一些系統信息
返回當前登錄系統的用戶信息 ,users()方法 注:started返回的爲Linux時間戳
獲取開機時間,同樣使用Linux時間戳來返回,使用boot_time()方法
系統進程管理
獲取所有進程PID,使用pids()方法
可以使用Process()方法獲取單個進程的信息,先要實例化一個對象,參數爲pid值,例:pid爲960
獲取實例化的進程名,name()方法
獲取進程bin路徑,exe()方法
獲取進程工作絕對路徑目錄,cwd()方法
獲取進程狀態,status()方法
獲取進程創建時間,create_time()方法 注:時間爲Linux時間戳
獲取進程uid與gid信息,uids()與gids()方法
獲取進程cpu時間信息,cpu_times()方法
獲取進程與CPU的親和度,cpu_affinity()方法,可以將CPU號作爲參數來設置進程CPU親和性
獲取進程內存使用率,memory_percent()方法,單位爲百分比
獲取進程IO信息,io_counters()方法
獲取進程內存rss、vms等信息,memory_info()方法
獲取進程開啓的線程數,num_threads()方法
獲取進程的線程信息,threads()方法
Popen類的使用
Popen類可以獲取用戶啓動應用程序的情況,以便跟蹤程序的運行狀態 例:跟蹤python的運行情況
name()方法獲取進程名,username()方法獲取啓動用戶,cpu_times()方法獲取進程運行的CPU時間