利用paramiko模块批量查看远程机器上指定进程的相关信息

简介:

以前总是利用shell来编写脚本,最近学习python,发现paramiko使用上很方便,paramiko就是利用ssh协议进行通信。


需求:利用paramiko库远程连接到远程服务器,执行命令“ps aux”,查看指定服务的的cpu,内存,VSZ,RSS信息,并且以指定格式输出。


脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#! /usr/bin/env python
#coding:utf-8
#通过paramiko模块,获得远程机器的指定进程相关信息;
 
 
import  paramiko
 
host_lists = (
             ( 'node1' , '172.16.41.151' ),
             ( 'node2' , '172.16.41.152' ),
             ( 'node3' , '172.16.41.153' ),
             ( 'node4' , '172.16.41.158' )
         )
 
 
 
def  getServerInfo(host,user,password,services):
      conn  =  paramiko.SSHClient()
      conn.load_system_host_keys()
      conn.set_missing_host_key_policy(paramiko.AutoAddPolicy())
      conn.connect(host, 22 ,user,password)
      stdin,stdout,stderr  =  conn.exec_command( "ps aux|awk '{print $3,$4,$5,$6,$11}'|grep %s"  %  services)
      info  =  stdout.read()
      conn.close()
 
      return  info
 
if  __name__  = =  '__main__' :
     print  "hostname   %CPU   %MEM   VSZ   RSS   services"
     for  host  in  host_lists:
         try :
             info  =  getServerInfo(host[ 1 ], 'root' , 'passwd' , 'cupsd' )
             info_list  =  info.split()
             print  "%s %s %s %s %s %s "  %  (host[ 0 ],info_list[ 0 ],info_list[ 1 ],info_list[ 2 ],info_list[ 3 ],info_list[ 4 ] )
         except :
             pass



执行结果如下:

wKioL1Ry4NfwyBGJAADm5M7lg3A271.jpg


本文转自 shine_forever 51CTO博客,原文链接:http://blog.51cto.com/shineforever/1581958

相关文章
|
11天前
|
关系型数据库 MySQL
MySQL查看连接数和进程信息
这篇文章介绍了如何在MySQL中查看连接数和进程信息,包括当前打开的连接数量、历史成功建立连接的次数、连接错误次数、连接超时设置,以及如何查看和终止正在执行的连接进程。
51 10
|
23天前
|
Python
惊!Python进程间通信IPC,让你的程序秒变社交达人,信息畅通无阻
【9月更文挑战第13天】在编程的世界中,进程间通信(IPC)如同一场精彩的社交舞会,每个进程通过优雅的IPC机制交换信息,协同工作。本文将带你探索Python中的IPC奥秘,了解它是如何让程序实现无缝信息交流的。IPC如同隐形桥梁,连接各进程,使其跨越边界自由沟通。Python提供了多种IPC机制,如管道、队列、共享内存及套接字,适用于不同场景。通过一个简单的队列示例,我们将展示如何使用`multiprocessing.Queue`实现进程间通信,使程序如同社交达人般高效互动。掌握IPC,让你的程序在编程舞台上大放异彩。
15 3
|
5天前
|
缓存 运维 NoSQL
使用 psutil 获取硬件、网络以及进程信息
使用 psutil 获取硬件、网络以及进程信息
12 0
|
1月前
|
NoSQL
gdb中获取进程收到的最近一个信号的信息
gdb中获取进程收到的最近一个信号的信息
|
2月前
|
Java Windows
【Azure Developer】Windows中通过pslist命令查看到Java进程和线程信息,但为什么和代码中打印出来的进程号不一致呢?
【Azure Developer】Windows中通过pslist命令查看到Java进程和线程信息,但为什么和代码中打印出来的进程号不一致呢?
|
2月前
|
数据采集 并行计算 安全
Python并发编程:多进程(multiprocessing模块)
在处理CPU密集型任务时,Python的全局解释器锁(GIL)可能会成为瓶颈。为了充分利用多核CPU的性能,可以使用Python的multiprocessing模块来实现多进程编程。与多线程不同,多进程可以绕过GIL,使得每个进程在自己的独立内存空间中运行,从而实现真正的并行计算。
|
1月前
|
Linux
查看进程的内存使用信息
查看进程的内存使用信息
|
2月前
|
存储 安全 Python
[python]使用标准库logging实现多进程安全的日志模块
[python]使用标准库logging实现多进程安全的日志模块
|
2月前
|
数据安全/隐私保护 异构计算 Windows
【Azure 环境】 介绍两种常规的方法来监视Window系统的CPU高时的进程信息: Performance Monitor 和 Powershell Get-Counter
【Azure 环境】 介绍两种常规的方法来监视Window系统的CPU高时的进程信息: Performance Monitor 和 Powershell Get-Counter
|
2月前
|
Python
惊!Python进程间通信IPC,让你的程序秒变社交达人,信息畅通无阻
【8月更文挑战第1天】在编程世界中,进程间通信(IPC)犹如一场社交舞会,各进程通过IPC机制优雅地交换信息,共同完成复杂任务。IPC就像隐形桥梁,连接并行运行的进程,使它们能跨越边界自由沟通。Python提供了多种IPC机制,如管道、队列、共享内存和套接字等,适应不同需求。例如,使用`multiprocessing.Queue`实现进程间通信,生产者向队列添加数据,消费者取出并处理数据,两者虽独立却能有效协作。IPC打破了进程界限,使得程序能像社交达人般自由交流,构建出高效、灵活的应用。掌握IPC,让程序信息畅通无阻。
22 1
下一篇
无影云桌面