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中为什么要用self探讨
Apr 14 Python
Python实现递归遍历文件夹并删除文件
Apr 18 Python
解决Python requests 报错方法集锦
Mar 19 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
Feb 13 Python
python把数组中的数字每行打印3个并保存在文档中的方法
Jul 17 Python
20行python代码实现人脸识别
May 05 Python
详解Python Qt的窗体开发的基本操作
Jul 14 Python
django页面跳转问题及注意事项
Jul 18 Python
Django中提示消息messages的设置方式
Nov 15 Python
jupyter notebook的安装与使用详解
May 18 Python
django queryset相加和筛选教程
May 18 Python
Python连接Mysql进行增删改查的示例代码
Aug 03 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
根德YB400的电路分析
2021/03/02 无线电
php 服务器调试 Zend Debugger 的安装教程
2009/09/25 PHP
利用PHP如何实现Socket服务器
2015/09/23 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
PHP 布尔值的自增与自减的实现方法
2018/05/03 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
2016/11/30 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
2017/08/08 jQuery
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
NodeJS安装图文教程
2018/04/19 NodeJs
JavaScript中callee和caller的区别与用法实例分析
2019/06/28 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
Python中方法链的使用方法
2016/02/23 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
2016/05/28 Python
python学习之面向对象【入门初级篇】
2017/01/21 Python
深入理解python中sort()与sorted()的区别
2018/08/29 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
python 含子图的gif生成时内存溢出的方法
2019/07/07 Python
如何使用selenium和requests组合实现登录页面
2020/02/03 Python
计算Python Numpy向量之间的欧氏距离实例
2020/05/22 Python
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
adidas泰国官网:adidas TH
2020/07/11 全球购物
心理学专业毕业生推荐信范文
2013/11/21 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
2014年移动公司工作总结
2014/12/08 职场文书
Oracle11g R2 安装教程完整版
2021/06/04 Oracle