python paramiko远程服务器终端操作过程解析


Posted in Python onDecember 14, 2019

这篇文章主要介绍了python paramiko远程服务器终端操作过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1.with open写文件到本地

2.paramiko SFTPClient将文件推到salt服务端

3.paramiko SSHClient通过salt-cp将文件分发给目标服务器

1.

with open(filePath, ‘w‘) as f:   # filePath文件本地路径,w write模式
f.write(content)  
return filePath

2.

import paramiko
# 1 连接客户端
transport = paramiko.Transport((ssh_url, ssh_port))
transport.connect(username=ssh_user, password=ssh_pwd)
# 2 定义与客户端交互  将刚刚定义的transport当参数传递给他
sftp = paramiko.SFTPClient.from_transport(transport)
# sftp.put(r‘/Users/mnt/{}‘.format(script_name), ‘/mnt/{}‘.format(script_name))
sftp.put(本地路径+ ‘{}‘.format(文件名), 目标路径+‘{}‘.format(文件名))
# 5 关闭连接
transport.close()

3.

# 实例化一个ssh
ssh = paramiko.SSHClient()
# 设置主机不在khost_key中也能连接
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 创建连接
ssh.connect(hostname=ssh_url, port=ssh_port, username=ssh_user, password=ssh_pwd)
# 执行命令, 
salt-cp -L salt_minion_hostname local_url/filename target_url
stdin, stdout, stderror = ssh.exec_command(‘salt-cp -L localhost.localdomain /mnt/‘ + script_name + ‘ /mnt‘)
# 打印输出
print(stdout.read())
# 关闭连接
ssh.close()

4.通过paramiko模块控制远程服务器cmd终端,执行git命令

import paramiko
#
def parmiko_con():
  # 实例化一个ssh
  ssh = paramiko.SSHClient()
  # 设置主机不在khost_key中也能连接
  ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  # 创建连接
  ssh.connect(hostname=ssh_url, port=ssh_port, username=ssh_user, password=ssh_pwd)
  # 执行命令
  # cmd = ‘cd /mnt/test_pro/opsmanage/ && git shortlog -2‘
# 查看最近两次的提交版本,在cmd里执行没有问题,但在函数里运行响应不出来,git log命令需要按q退出
  # cmd = ‘cd /mnt/test_pro/opsmanage/ && git rev-list master‘
 # master分支提交记录倒叙排列
  cmd = ‘cd /mnt/test_pro/opsmanage/ && git log --since=1.weeks‘
# 查看近一周的提交,多条数据只有一个列表,需要进行处理,需要请移步:https://www.cnblogs.com/lutt/p/12037454.html
  # cmd = ‘cd /mnt/test_pro/opsmanage/ && git rev-list --all -n 2‘  # 历史版本reverse只去两条记录(只显示commit id)
  # cmd = ‘cd /mnt/OpsManage/ && git branch -a‘

# 查看当前所有分支, git branch 查看当前分支
  # cmd = ‘cd /mnt/test_pro/opsmanage/ && git tag -l‘ # 查看当前所有tag
  stdin, stdout, stderror = ssh.exec_command(cmd)
  # 打印输出
  list2 = []
  ret = stdout.read().decode(‘utf-8‘)
  list2 = ret.split(‘\n‘)
  print(list2)

  # 关闭连接
  ssh.close()

if __name__ == ‘__main__‘:
  parmiko_con()
  print(‘ok‘)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中用Spark模块的使用教程
Apr 13 Python
bpython 功能强大的Python shell
Feb 16 Python
python利用urllib和urllib2访问http的GET/POST详解
Sep 27 Python
Python编程中flask的简介与简单使用
Dec 28 Python
Python read函数按字节(字符)读取文件的实现
Jul 03 Python
用Anaconda安装本地python包的方法及路径问题(图文)
Jul 16 Python
Python socket 套接字实现通信详解
Aug 27 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
Dec 11 Python
Python插入Elasticsearch操作方法解析
Jan 19 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
Mar 09 Python
python调用摄像头的示例代码
Sep 28 Python
pandas按照列的值排序(某一列或者多列)
Dec 13 Python
安装PyInstaller失败问题解决
Dec 14 #Python
django自定义模板标签过程解析
Dec 14 #Python
django序列化serializers过程解析
Dec 14 #Python
Python搭建HTTP服务过程图解
Dec 14 #Python
Pyqt5自适应布局实例
Dec 13 #Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 #Python
PyQT5 emit 和 connect的用法详解
Dec 13 #Python
You might like
Netflix将与CLAMP、乙一以及冲方丁等6名知名制作人合伙展开原创动画计划!
2020/03/06 日漫
php快速url重写 更新版[需php 5.30以上]
2010/04/20 PHP
PHP实现二维数组根据key进行排序的方法
2016/12/30 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
javascript从定义到执行 你不知道的那些事
2016/01/04 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
2016/01/22 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
使用JavaScript获取Request中参数的值方法
2016/09/27 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
JQuery实现图片轮播效果
2017/05/08 jQuery
vue.js给动态绑定的radio列表做批量编辑的方法
2018/02/28 Javascript
小程序实现图片预览裁剪插件
2019/11/22 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
Python实现批量转换文件编码的方法
2015/07/28 Python
Python进阶-函数默认参数(详解)
2017/05/18 Python
无法使用pip命令安装python第三方库的原因及解决方法
2018/06/12 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
python实现车牌识别的示例代码
2019/08/05 Python
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
初一英语教学反思
2014/01/11 职场文书
学期自我评价
2014/01/27 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
2014年内勤工作总结
2014/11/24 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
儿童诗两首教学反思
2016/02/23 职场文书
导游词之唐山景点
2019/12/18 职场文书
python爬虫之爬取笔趣阁小说
2021/04/22 Python