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 判断一个进程是否存在
Apr 09 Python
Linux环境下MySQL-python安装过程分享
Feb 02 Python
python通过正则查找微博@(at)用户的方法
Mar 13 Python
Python使用MYSQLDB实现从数据库中导出XML文件的方法
May 11 Python
Python+Turtle动态绘制一棵树实例分享
Jan 16 Python
selenium+python实现自动化登录的方法
Sep 04 Python
ipython和python区别详解
Jun 26 Python
pytorch 图像预处理之减去均值,除以方差的实例
Jan 02 Python
mac在matplotlib中显示中文的操作方法
Mar 06 Python
python实现交并比IOU教程
Apr 16 Python
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
May 25 Python
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
Jun 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
用PHP中的 == 运算符进行字符串比较
2006/11/26 PHP
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
2020/04/05 PHP
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
jQuery CSS()方法改变现有的CSS样式表
2014/09/09 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
ES6中Math对象新增的方法实例详解
2017/04/25 Javascript
angular之ng-template模板加载
2017/11/09 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
2018/05/09 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
2018/10/31 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
2019/04/22 Javascript
javascript使用substring实现的展开与收缩文字功能示例
2019/06/17 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
layui 数据表格 点击分页按钮 监听事件的实例
2019/09/02 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
js实现单元格拖拽效果
2020/02/10 Javascript
mpvue实现微信小程序快递单号查询代码
2020/04/03 Javascript
[02:04]2018DOTA2亚洲邀请赛Secret赛前采访
2018/04/03 DOTA
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
python通过pil模块获得图片exif信息的方法
2015/03/16 Python
python制作爬虫并将抓取结果保存到excel中
2016/04/06 Python
全面理解Python中self的用法
2016/06/04 Python
深入了解Python数据类型之列表
2016/06/24 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
python 获取url中的参数列表实例
2018/12/18 Python
Python Django 添加首页尾页上一页下一页代码实例
2019/08/21 Python
银行竞聘报告范文
2014/11/06 职场文书
欢迎词范文
2015/01/27 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers