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实现windows下模拟按键和鼠标点击的方法
Mar 13 Python
Python pickle模块用法实例
Apr 14 Python
Python中标准库OS的常用方法总结大全
Jul 19 Python
TensorFlow实现Batch Normalization
Mar 08 Python
python实现Zabbix-API监控
Sep 17 Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 Python
python实时检测键盘输入函数的示例
Jul 17 Python
python实现图片二值化及灰度处理方式
Dec 07 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
Jan 03 Python
Python建造者模式案例运行原理解析
Jun 29 Python
Python字符串三种格式化输出
Sep 17 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
Feb 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
ADODB的数据库封包程序库
2006/12/31 PHP
理解PHP5中static和const关键字的区别
2007/03/19 PHP
PHP 开发环境配置(测试开发环境)
2010/04/28 PHP
php将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
逆序二维数组插入一元素的php代码
2012/06/08 PHP
php模拟ping命令(php exec函数的使用方法)
2013/10/25 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
2019/09/12 PHP
javascript入门基础之私有变量
2010/02/23 Javascript
统计jQuery中各字符串出现次数的工具
2012/05/03 Javascript
利用了jquery的ajax实现二级联互动菜单
2013/12/02 Javascript
Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值
2016/03/23 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
2017/04/25 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
2017/05/05 Javascript
vue.js简单配置axios的方法详解
2017/12/13 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
[15:58]DOTA2国际邀请赛采访专栏:Tongfu.Sansheng&KingJ,DK.rOtk
2013/08/08 DOTA
在Python中使用正则表达式的方法
2015/08/13 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
使用python 打开文件并做匹配处理的实例
2019/01/02 Python
python画微信表情符的实例代码
2019/10/09 Python
如何把python项目部署到linux服务器
2020/08/26 Python
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
eBay比利时购物网站:eBay.be
2019/08/09 全球购物
Java如何调用外部Exe程序
2015/07/04 面试题
致裁判员加油稿
2014/02/08 职场文书
培训班通知
2015/04/25 职场文书
教师师德承诺书2016
2016/03/25 职场文书
「玫瑰之王的葬礼」舞台剧主视觉图公开
2022/03/21 日漫