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 相关文章推荐
Django内容增加富文本功能的实例
Oct 17 Python
Python如何抓取天猫商品详细信息及交易记录
Feb 23 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
Aug 17 Python
Python实现生成密码字典的方法示例
Sep 02 Python
pycharm显示远程图片的实现
Nov 04 Python
python调用c++返回带成员指针的类指针实例
Dec 12 Python
Python面向对象之私有属性和私有方法应用案例分析
Dec 31 Python
appium+python adb常用命令分享
Mar 06 Python
keras读取h5文件load_weights、load代码操作
Jun 12 Python
Python 解析简单的XML数据
Jul 24 Python
Python中pass的作用与使用教程
Nov 13 Python
python中24小时制转换为12小时制的方法
Jun 18 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
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
php 读取文件夹下所有图片、文件的实例
2018/10/17 PHP
优化JavaScript脚本的性能的几个注意事项
2006/12/22 Javascript
JavaScript在IE中“意外地调用了方法或属性访问”
2008/11/19 Javascript
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
javascript开发技术大全-第3章 js数据类型
2011/07/03 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
Node.js 学习笔记之简介、安装及配置
2015/03/03 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
2016/05/12 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
jQuery表单验证插件解析(推荐)
2016/07/21 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
微信小程序 使用canvas制作K线实例详解
2017/01/12 Javascript
Canvas 绘制粒子动画背景
2017/02/15 Javascript
详解vue使用$http服务端收不到参数
2019/04/19 Javascript
jQuery实现轮播图效果demo
2020/01/11 jQuery
[51:44]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第二场
2018/04/04 DOTA
[37:02]OG vs INfamous 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
简单介绍Python中的len()函数的使用
2015/04/07 Python
Python实现求最大公约数及判断素数的方法
2015/05/26 Python
Python中subprocess的简单使用示例
2015/07/28 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
2016/09/19 Python
详解python3百度指数抓取实例
2016/12/12 Python
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
python 实现得到当前时间偏移day天后的日期方法
2018/12/31 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
Keras官方中文文档:性能评估Metrices详解
2020/06/15 Python
django美化后台django-suit的安装配置操作
2020/07/12 Python
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
国际贸易个人求职信范文
2014/01/04 职场文书
产品售后服务承诺书
2014/05/21 职场文书
药剂专业自荐书
2014/06/20 职场文书
图书馆志愿者活动总结
2014/06/27 职场文书
保密工作目标责任书
2014/07/28 职场文书
十佳家长事迹材料
2014/08/26 职场文书
2015年秋季运动会加油稿
2015/07/22 职场文书