猿问

无法通过 python paramiko 获取远程服务器上的 CPU 利用率

我正在尝试使用 python paramiko 获取远程服务器上的 CPU 利用率。


import paramiko

from socket import error as socket_error

import os 

try:

    ssh_remote =paramiko.SSHClient()

    ssh_remote.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    privatekeyfile = os.path.expanduser('~/.ssh/id')

    mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile, password='test123')

    ssh_remote.connect('10.10.0.1', username = 'test1', pkey = mykey)

    idin, idout, iderr = ssh_remote.exec_command("ps aux | grep -i 'test' | grep -v grep | awk '{print $2}'")

    id_out = idout.read().decode().splitlines()

    id_out_1 = id_out[0]

    rein, reout, reerr = ssh_remote.exec_command("ps -p %s -o %s" %(id_out_1 ,'cpu'))

    cp = reout.read().decode().splitlines()

    print cp

except paramiko.SSHException as sshException:

    print "Unable to establish SSH connection:{0}".format(hostname)

except socket_error as socket_err:

    print "Unable to connect connection refused"

接收低于输出


[u'CPU', u'  -']

代替


[u'%CPU', u'0.1']

不知道这里有什么问题。请帮忙解决这个问题。


慕标5832272
浏览 246回答 1
1回答

潇湘沐

你需要%cpunotcpu所以你需要改变:rein, reout, reerr = ssh_remote.exec_command("ps -p %s -o %s" %(id_out_1 ,'cpu'))到rein, reout, reerr = ssh_remote.exec_command("ps -p %s -o %s" %(id_out_1 ,'%cpu'))这将为您提供 CPU 使用率的百分比。
随时随地看视频慕课网APP

相关分类

Python
我要回答