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通过zlib实现压缩与解压字符串的方法
Nov 19 Python
python之Socket网络编程详解
Sep 29 Python
Python爬虫爬取一个网页上的图片地址实例代码
Jan 16 Python
Python实现繁体中文与简体中文相互转换的方法示例
Dec 18 Python
python实现QQ邮箱/163邮箱的邮件发送
Jan 22 Python
使用python写的opencv实时监测和解析二维码和条形码
Aug 14 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
Oct 11 Python
Python多线程模块Threading用法示例小结
Nov 09 Python
Python爬虫实现百度翻译功能过程详解
May 29 Python
解决numpy数组互换两行及赋值的问题
Apr 17 Python
Python网络编程之ZeroMQ知识总结
Apr 25 Python
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
Apr 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
海河写的 Discuz论坛帖子调用js的php代码
2007/08/23 PHP
php设置编码格式的方法
2013/03/05 PHP
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
javascript中关于&& 和 || 表达式的小技巧分享
2015/04/10 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
jQuery获取cookie值及删除cookie用法实例
2016/04/15 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
2017/04/10 jQuery
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
validform表单验证的实现方法
2019/03/08 Javascript
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
Python中表示字符串的三种方法
2017/09/06 Python
Python编程中flask的简介与简单使用
2018/12/28 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
2019/08/09 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
2020/05/29 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
socket.io 和canvas 实现的共享画板功能
2019/05/22 HTML / CSS
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
自我推荐书
2013/12/04 职场文书
中学生获奖感言
2014/02/04 职场文书
求职面试个人自我评价
2014/02/28 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
vue实现可以快进后退的跑马灯组件
2022/04/08 Vue.js