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复制目录结构脚本代码分享
Mar 06 Python
Python实现多进程共享数据的方法分析
Dec 04 Python
Python3.5面向对象编程图文与实例详解
Apr 24 Python
Django Channels 实现点对点实时聊天和消息推送功能
Jul 17 Python
linux环境下Django的安装配置详解
Jul 22 Python
python文档字符串(函数使用说明)使用详解
Jul 30 Python
浅析PyTorch中nn.Linear的使用
Aug 18 Python
Python全栈之列表数据类型详解
Oct 01 Python
使用pyshp包进行shapefile文件修改的例子
Dec 06 Python
Python requests设置代理的方法步骤
Feb 23 Python
python模块内置属性概念及实例
Feb 18 Python
请求模块urllib之PYTHON爬虫的基本使用
Apr 08 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
Cakephp 执行主要流程
2010/03/24 PHP
yii框架通过控制台命令创建定时任务示例
2014/04/30 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
PJBlog插件 防刷新的在线播放器
2006/10/25 Javascript
csdn 论坛技术区平均给分功能
2009/11/07 Javascript
js判断是否为数组的函数: isArray()
2011/10/30 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
通过jQuery源码学习javascript(二)
2012/12/27 Javascript
instanceof和typeof运算符的区别详解
2014/01/06 Javascript
javascript制作坦克大战全纪录(1)
2014/11/27 Javascript
JS获取表格内指定单元格html内容的方法
2015/03/31 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
2015/06/16 Javascript
一分钟理解js闭包
2016/05/04 Javascript
深入理解jQuery 事件处理
2016/06/14 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
JavaScript提高加载和执行效率的方法
2017/02/03 Javascript
javascript计算对象长度的方法
2017/10/25 Javascript
详解html-webpack-plugin用法全解
2018/01/22 Javascript
微信小程序如何使用云开发
2019/05/17 Javascript
js实现随机8位验证码
2020/07/24 Javascript
JavaScript图片旋转效果实现方法详解
2020/06/28 Javascript
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
python中遍历文件的3个方法
2014/09/02 Python
Python中集合类型(set)学习小结
2015/01/28 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
python 解压pkl文件的方法
2018/10/25 Python
python基于递归解决背包问题详解
2019/07/03 Python
python遍历文件目录、批量处理同类文件
2019/08/31 Python
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
2013/01/31 HTML / CSS
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
写好自荐信要注意的问题
2013/11/10 职场文书
《我的信念》教学反思
2014/02/15 职场文书
我爱我班主题班会
2015/08/13 职场文书
靠谱准确的求职信
2019/04/02 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
MySQL通过binlog恢复数据
2021/05/27 MySQL