我正在尝试使用 python paramiko 获取远程服务器上的 CPU 利用率。import paramikofrom socket import error as socket_errorimport 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 cpexcept 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']不知道这里有什么问题。请帮忙解决这个问题。
1 回答

潇湘沐
TA贡献1816条经验 获得超6个赞
你需要%cpu
notcpu
所以你需要改变:
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 使用率的百分比。
添加回答
举报
0/150
提交
取消