cmd运行python服务器,python如何利用paramiko执行服务器命令
话不多说直接上代码
封装连接
@staticmethod
def connect(ip, server_user, server_port, server_path):
"""
连接服务器
:param :
:return:
"""
ssh = paramiko.SSHClient()
private_key = paramiko.RSAKey.from_private_key_file('{}.ssh/id_rsa'.format(server_path))
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
ssh.connect(ip, port=server_port, username=server_user, pkey=private_key, timeout=5, allow_agent=True)
return ssh
except Exception as e:
app.logger.info('connect_error info is {}'.format(e.__repr__()))
return {
'result': 1,
'ip': ip,
'msg': e.__repr__(),
}
在服务器执行命令
def fabric_run_cmd(self, ip, server_user, server_port, server_path, cmd):
"""
批量在服务器执行命令
:return:
"""
conn = self.connect(ip, server_user, server_port, server_path)
try:
if type(conn) == dict:
return conn
else:
stdin, stdout, stderr = conn.exec_command(cmd)
app.logger.info('fabric_run_cmd_stdout info is {}'.format(stdout.readlines()))
app.logger.info('fabric_run_cmd_stderr info is {}'.format(stderr.readlines()))
channel = stdout.channel
status = channel.recv_exit_status()
conn.close()
app.logger.info('fabric_run_cmd_status info is {}'.format(status))
if status == 0:
return {
'ip': ip,
'msg': '执行成功',
'result': 0
}
else:
return {
'ip': ip,
'msg': stderr.readlines(),
'result': 1
}
except Exception as e:
app.logger.info('fabric_run_cmd_error info is {}'.format(e.__repr__()))
return {
'ip': ip,
'msg': e.__repr__(),
'result': 1
}
将文件发送到服务器
def fabric_put_file(self, ip, src_file, dst_file, server_user, server_port, server_path):
"""
发送文件到服务器
:return:
"""
conn = self.connect(ip, server_user, server_port, server_path)
if type(conn) == dict:
return conn
else:
try:
ftp = conn.open_sftp()
ftp.put(dst_file, src_file) # 发送文件之前先判断有没有目标文件夹 如果没有现在服务器上创建文件夹
ftp.close() # 在此判断文件是否发送成功
return {
'ip': ip,
'msg': '上传成功',
'result': 0
}
except Exception as e:
app.logger.info('fabric_put_file_error info is {}'.format(e.__repr__()))
return {
'ip': ip,
'msg': e.__repr__(),
'result': 1
}
能力有限,如有不妥请留言指正
以上就是python如何利用paramiko执行服务器命令的详细内容,更多关于python 执行服务器命令的资料请关注脚本之家其它相关文章!
cmd运行python服务器,python如何利用paramiko执行服务器命令相关推荐
- python subprocess使用_python利用subprocess执行交互命令
已经知道,os.system可以方便的利用python代码执行一些像ping.ipconfig之类的系统命令,但却只能得到命令执行是否成功,不能获得命令成功执行后的结果,像下面这样: 1 >&g ...
- python怎么连接远程服务器没有按时响应_python通过paramiko执行ssh命令时设置超时时间 - Python - 服务器之家...
python通过paramiko执行ssh命令时设置超时时间 发布时间:2014-06-17
- win7 asp虚拟服务器,win7怎么利用ASP获取服务器IP地址 win7利用ASP获取服务器IP地址教程...
win7系统浏览器打开的网页查看服务器ip地址,网络上浏览的网页都是放在服务器上的,那么怎样用ASP获取服务器ip地址呢?今天小编给大家带来ASP获取服务器IP地址的方法,请一起看看下文详细介绍吧. ...
- python超赞插件you-get,执行一行命令即可下载、命令行下载工具推荐!
you-get 是基于python3实现的多媒体资源下载插件,包括音频.图片.视频等下载功能.执行方式简单直接在.命令行执行命令即可下载相应的资源! [阅读全文] 插件安装 ''' 安装命令:pip ...
- git服务器文件同步,利用git让服务器网站与本地同步 ssh配置
嘛,就是将服务器上的网站和本地同步. 方法1 首先是上传服务器上的网站到github仓库 git init git add . git commit -m '' 关联远程仓库,先去github上新建一 ...
- java里面运行js_在java中利用rhino执行javascript
以rhino中执行QQ邮箱的safeauth.js为例 js代码地址:http://res.qqmail.com/zh_CN/htmledition20091127/js/safeauth.js (1 ...
- Android利用 libsuperuse执行shell命令或获取root权限
Android 5.1 之后,发现通过ActivityManger获取不到正在运行的进程了,可以通过shell命令来获取,参考. libsuperuse执行shell可以参考: http://my.o ...
- 利用go执行nmap命令
如题,针对nmap探测任务,尤其是批量探测的情况下.我们可以用脚本的方式代替手工 package mainimport ("bytes""fmt""g ...
- python远程linux服务器执行命令_基于使用paramiko执行远程linux主机命令(详解)
paramiko是python的SSH库,可用来连接远程linux主机,然后执行linux命令或者通过SFTP传输文件. 关于使用paramiko执行远程主机命令可以找到很多参考资料了,本文在此基础上 ...
最新文章
- [转载] 全本张广泰——第十七回 夫人诱广泰 血溅洪洞县
- python 字典的值可以为集合吗_转:Python字典与集合操作总结
- 如何利用百度ocr实现验证码自动识别
- 要引爆用户增长?抵制“诱惑”更健康
- android wifi RSSI达到阈值自动断开
- spring配置详解-初始化销毁方法
- 报表怎样实现滚动的公告效果?
- 多图上传 - Web Uploader
- Makefile之自动生成依赖(8)
- 新iPhone同款?谷歌Pixel 4渲染图曝光:“浴霸”相机模组抢眼
- 一行一个链接代码_小白写代码讨女朋友欢心,包教包会
- Centos7 防火墙常用配置
- 2015-2016书籍计划
- C语言libiconv编程,libIconv.lib编码库的生成和使用
- raw socket编程实例
- 主流数据持久层框架特性与实践
- asp.net开源资料——国内.NET论坛源代码
- 吴恩达深度学习笔记(40)-指数加权平均数优化算法
- 快速增加闲鱼浏览量,就靠这些方法
- Win10 系统一天蓝屏好多次,怎么解决?