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实现命令行有道词典的方法示例
Jan 31 Python
Django开发中的日志输出的方法
Jul 02 Python
Python面向对象基础入门之设置对象属性
Dec 11 Python
Python提取支付宝和微信支付二维码的示例代码
Feb 15 Python
Python 实现输入任意多个数,并计算其平均值的例子
Jul 16 Python
python打造爬虫代理池过程解析
Aug 15 Python
基于Python实现剪切板实时监控方法解析
Sep 11 Python
python中使用you-get库批量在线下载bilibili视频的教程
Mar 10 Python
Python requests模块安装及使用教程图解
Jun 30 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
Aug 19 Python
Python 调用C++封装的进一步探索交流
Mar 04 Python
python 用递归实现通用爬虫解析器
Apr 16 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
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
php控制文件下载速度的方法
2015/03/24 PHP
详细解读PHP中接口的应用
2015/08/12 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
PHP实现随机发放扑克牌
2020/04/21 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
js操作ajax返回的json的注意问题!
2010/02/23 Javascript
javascript中的prototype属性使用说明(函数功能扩展)
2010/08/16 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
javascript面向对象之this关键词用法分析
2015/01/13 Javascript
jQuery 判断图片是否加载完成方法汇总
2015/08/10 Javascript
完美实现bootstrap分页查询
2015/12/09 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
Svg.js实例教程及使用手册详解(一)
2016/05/16 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
2017/09/14 Javascript
浅谈NodeJs之数据库异常处理
2017/10/25 NodeJs
详解node.js的http模块实例演示
2018/07/12 Javascript
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
一篇文章带你从零快速上手Rollup
2020/09/07 Javascript
python 排列组合之itertools
2013/03/20 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
基于Keras的格式化输出Loss实现方式
2020/06/17 Python
增大python字体的方法步骤
2020/07/05 Python
探亲邀请信范文
2014/01/30 职场文书
学生周末回家住宿长期请假条
2014/02/15 职场文书
数控专业毕业生自荐信范文
2014/03/04 职场文书
安全生产管理责任书
2014/04/16 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
Pygame Draw绘图函数的具体使用
2021/11/17 Python
Apache Hudi集成Spark SQL操作hide表
2022/03/31 Servers
python Tkinter模块使用方法详解
2022/04/07 Python