通过paramiko模块在远程主机上执行命令
安装paramiko模块
/usr/local/python36/bin/pip3 install paramiko
1、获取cpu使用率
#!/usr/bin/python
#coding=utf8
#target: get the cpu's used of remote linux system import paramiko def getlinux(ssh):
# get the result of executing command
stdin, stdout, stderr = ssh.exec_command(r"sar 2 3|awk 'END{print (100-$NF)*100}'")
# judge if there is any error
err = stderr.readlines()
if len(err) > 0:
return err
else:
stdout_content = stdout.readlines()
result = stdout_content
if len(result) == 0:
print("there is something wrong when executing sar command")
else:
return round(float(result[0].strip()),2) if __name__ == '__main__':
# create ssh object
ssh = paramiko.SSHClient()
# connect target host by ssh
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname="192.168.223.136",port=22,username="root",password="redhat")
# get the result of target host
result = getlinux(ssh)
# close ssh connection
ssh.close()
print(str(result)+"%s used")
2、获取内存使用率
#!/usr/bin/python
#coding=utf8
#target: get the memory's used of linux system import paramiko def getlinux(ssh):
# executing command
stdin, stdout, stderr = ssh.exec_command(r"free -m|awk 'NR==2{print (($3 - $6 - $7)/$2)*100}'")
err = stderr.readlines()
if len(err) > 0:
return err
else:
stdout_content = stdout.readlines()
result = stdout_content
if len(result) == 0:
print("there is something wrong when executing free -m")
else:
return round(float(result[0].strip()),2) if __name__ == '__main__':
# create ssh object
ssh = paramiko.SSHClient()
# connect target host by ssh
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname="192.168.223.136",port=22,username="root",password="redhat")
result = getlinux(ssh)
ssh.close()
print(str(result)+"% used")
3、获取磁盘使用率:
#!/usr/bin/python
#coding=utf8
#target: get the used of disk import paramiko def getlinux(ssh):
stdin, stdout, stderr = ssh.exec_command(r"df -h|awk 'NR > 1{if($1==$NF){print $1}else{print $0}}'")
err = stderr.readlines()
if len(err) > 0:
return err
else:
stdout_content = stdout.readlines()
result = stdout_content
if len(result) == 0:
print("there is something wrong when executing command")
else:
return result if __name__ == '__main__':
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname="192.168.223.136",port=22,username="root",password="redhat")
result = getlinux(ssh)
ssh.close()
for i in result:
print("the used of %s has used %s" % (i.strip().split()[5],i.strip().split()[4]))
通过paramiko模块在远程主机上执行命令的更多相关文章
- Python3学习之路~9.1 paramiko模块:实现ssh执行命令以及传输文件
我们一般使用linux的时候,都是在Windows上安装一个ssh客户端连接上去.那么从一台linux如何连接到另一条linux呢?使用ssh命令即可,因为每台linux机器自己都有一个ssh客户端. ...
- ansible 批量在远程主机上执行命令
ansible 和 saltstack 都是为了同时在多台主机上执行相同的命令, 但是 salt配置麻烦,ansible基本不用配置, ansible 通过ssh来连接并控制被控节点 1. 安装 第一 ...
- ansible使用shell模块在受控机上执行命令(ansible2.9.5)
一,ansible的shell模块和command模块的区别? shell模块:在远程主机上执行主控端发出的shell/python脚本 command模块:不能调用shell指令,没有bash的环境 ...
- 【Shell实战】批量在多台服务器上执行命令
功能说明:批量在多台服务器上执行命令 #!/bin/bash # ========================================== # 功能:批量在多台服务器上执行命令 # 方法: ...
- expect实现远程主机自动执行命令脚本
2014年第一个脚本,哈哈!!! expect实现远程主机自动执行命令脚本: #!/usr/bin/expect -- if { [llength $argv] < 4 } { puts &qu ...
- 【Python】模块学习之使用paramiko连接Linux,远程执行命令,上传下载、文件
本文主要介绍paramiko远程执行linux命令,及在服务器上进行文件的上传.下载 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. ...
- linux免交互登陆远程主机并执行命令(密钥对和Expect)
原文章摘自:http://lizhenliang.blog.51cto.com/7876557/1607723/ Linux下实现免交互登陆一般有两种: 1. SSH无密码认证方式 客户端使用ssh- ...
- ssh在本地调用远程主机上的命令,不登录远程主机shell
需求描述: 在实际shell脚本的编写过程中,需要通过ssh远程执行一个命令,并返回执行的结果 简单来说,就是将命令发送到远程的主机上进行执行,但是并没有实际的登录到远程主机上.即通过 ssh的方式本 ...
- Ubuntu 上 执行命令 java -version 显示 没有那个文件或目录
解决方法 执行 which java 发现默认java目录:/usr/bin/java . 查看 JAVA_HOME 路径:$JAVA_HOME,得到 /usr/local/java/jdk1.7.0 ...
随机推荐
- vue兄弟组件传值
vue中除了父子组件传值,父传子用props,子传父用$emit,有时候兄弟组件之间也需要传值 1. 先定义一个中间件,src下面新建self.js import Vue from 'vue'; le ...
- js原型链和继承
在了解js原型链之前构造函数.原型对象.对象实例这几种概念必须要明白. 1. 创建对象有几种方法 //原型链指向objectvar o1={name:'o1'}; var o11=new Object ...
- 虚拟机VMWare安装苹果系统MacOS详细教程(联网设置,全屏插件、文件互传)
运行环境: VMware® Workstation 12 Pro(自行安装,或者用这个) 推荐(下面以10.11.6版本做的教程,但是安装时推荐使用此版本安装然后升级到10.11.6):MacOS X ...
- Netty 粘包/半包原理与拆包实战
Java NIO 粘包 拆包 (实战) - 史上最全解读 - 疯狂创客圈 - 博客园 https://www.cnblogs.com/crazymakercircle/p/9941658.html 本 ...
- 转:JAVA.NET.SOCKETEXCEPTION: TOO MANY OPEN FILES解决方法
最近随着网站访问量的提高把web服务器移到linux下了,在移服务器的第二天,tomcat频繁的报 java.net.SocketException: Too many open files错误,错误 ...
- x86架构下的控制寄存器CR0-CR4
关于这几个寄存器,每次翻看intel手册都很不好找,干脆直接贴在这里吧!
- django之页面缓存
一 全站缓存(全局缓存) 在settings中配置,主要就是两个中间件,需要注意的就是两个中间件的前后位置 MIDDLEWARE_CLASSES = ( ‘django.middleware.cac ...
- vim 设置字体和解决乱码
在 C:\Program Files (x86)\Vim 目录中的 _vimrc 文件中加入下面两行 set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bo ...
- codechef : Marbles 题解
版权声明:本文作者靖心,靖空间地址:http://blog.csdn.net/kenden23/,未经本作者同意不得转载. https://blog.csdn.net/kenden23/article ...
- CCF 201312-3 最大的矩形[比较简单]
问题描述 试题编号: 201312-3 试题名称: 最大的矩形 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ ...