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 相关文章推荐
wxPython中listbox用法实例详解
Jun 01 Python
实例讲解Python编程中@property装饰器的用法
Jun 20 Python
Python正则表达式经典入门教程
May 22 Python
TensorFlow 模型载入方法汇总(小结)
Jun 19 Python
利用Python如何批量修改数据库执行Sql文件
Jul 29 Python
django框架模板语言使用方法详解
Jul 18 Python
python中p-value的实现方式
Dec 16 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
Jan 10 Python
Python pyautogui模块实现鼠标键盘自动化方法详解
Feb 17 Python
Django自定义全局403、404、500错误页面的示例代码
Mar 08 Python
python的pip有什么用
Jun 17 Python
Django中Q查询及Q()对象 F查询及F()对象用法
Jul 09 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字符串截取中文截取2,单字节截取模式
2007/12/10 PHP
PHP封装的分页类与简单用法示例
2019/02/25 PHP
JQuery中关于jquery.js与jquery.min.js的比较探讨
2013/05/15 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
2014/03/12 Javascript
js使用ajax读博客rss示例
2014/05/06 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/08/22 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
微信小程序中实现一对多发消息详解及实例代码
2017/02/14 Javascript
Three.js的使用及绘制基础3D图形详解
2017/04/27 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
vue计算属性和监听器实例解析
2018/05/10 Javascript
vue-router+nginx 非根路径配置方法
2018/06/30 Javascript
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
2019/08/12 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
在Python中实现贪婪排名算法的教程
2015/04/17 Python
分析用Python脚本关闭文件操作的机制
2015/06/28 Python
Python将多份excel表格整理成一份表格
2018/01/03 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
Python数据类型之Tuple元组实例详解
2019/05/08 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
2019/08/06 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
python性能测试工具locust的使用
2020/12/28 Python
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
英国第一的市场和亚马逊替代品:OnBuy
2019/03/16 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2013/05/03 面试题
ktv收银员岗位职责
2013/12/16 职场文书
开办饭店创业计划书
2013/12/28 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书