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中使用items()方法返回字典元素对的教程
May 21 Python
Python实现计算最小编辑距离
Mar 17 Python
python实现将excel文件转化成CSV格式
Mar 22 Python
Python 字符串与二进制串的相互转换示例
Jul 23 Python
Django中使用 Closure Table 储存无限分级数据
Jun 06 Python
OpenCV 轮廓检测的实现方法
Jul 03 Python
python中提高pip install速度
Feb 14 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
Mar 06 Python
使用pyecharts1.7进行简单的可视化大全
May 17 Python
Python中logging日志记录到文件及自动分割的操作代码
Aug 05 Python
20行代码教你用python给证件照换底色的方法示例
Feb 05 Python
pandas求平均数和中位数的方法实例
Aug 04 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 session常见问题集锦及解决办法总结
2007/03/18 PHP
thinkPHP框架实现生成条形码的方法示例
2018/06/06 PHP
浅谈laravel数据库查询返回的数据形式
2019/10/21 PHP
PHP sdk实现在线打包代码示例
2020/12/09 PHP
用javascript操作xml
2006/11/04 Javascript
JQuery选择器特辑 详细小结
2012/05/14 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
2014/03/27 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
javascript常用函数(2)
2015/11/05 Javascript
JavaScript跨域调用基于JSON的RESTful API
2016/07/09 Javascript
js HTML5多图片上传及预览实例解析(不含前端的文件分割)
2016/08/26 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
js实现简单的网页换肤效果
2017/01/18 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
JS绘图Flot应用图形绘制异常解决方案
2020/10/16 Javascript
用js实现放大镜效果
2020/10/28 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
python实现ipsec开权限实例
2014/11/11 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
python3.6使用tkinter实现弹跳小球游戏
2019/05/09 Python
Python内置random模块生成随机数的方法
2019/05/31 Python
PyQt5中多线程模块QThread使用方法的实现
2020/01/31 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
2020/03/19 Python
python 如何调用远程接口
2020/09/11 Python
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
JD Sports瑞典:英国领先的运动时尚商店
2018/01/28 全球购物
说出数据连接池的工作机制是什么?
2013/04/19 面试题
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
护士的岗位职责
2013/12/04 职场文书
2014年国培研修感言
2014/03/09 职场文书
煤矿安全生产责任书
2014/04/15 职场文书
2014教师专业技术工作总结
2014/12/03 职场文书
聊聊Python String型列表求最值的问题
2022/01/18 Python