Python使用Paramiko控制liunx第三方库


Posted in Python onMay 20, 2020

paramiko是一个基于SSH用于连接远程服务器并执行相关操作(SSHClient和SFTPClinet,即一个是远程连接,一个是上传下载服务),使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来现实。

Paramiko 是Python 用于控制liunx中文件的第三方库,可创建文件,修改,删除文件的内容等;

代码实例:

# -*- coding:utf-8 -*-
import paramiko
 
class ssh(object):
  def __init__(self,host,port,user,password):
    self.host = host
    self.port = port
    self.user = user
    self.password = password
    self.ssh_client = paramiko.SSHClient()
    self.ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    self.ssh_client.connect(self.host, self.port, self.user, self.password)
 
  #执行指令返回文本字符串
  def sftp_exec_command(self,command):
    arrconfiglist = [""]
    try:
      std_in, std_out, std_err = self.ssh_client.exec_command(command)
      for line in std_out:
        arrconfiglist.append(line.strip("\n"))
      del arrconfiglist[0]
      self.ssh_client.close()
      return arrconfiglist
    except Exception as e:
      print(e,"ssh ERROR")
    finally:
      self.ssh_client.close()
 
  #执行指令无返回
  def sftp_exec_norecommand(self,command):
    try:
      self.ssh_client.exec_command(command)
      self.ssh_client.close()
    except Exception as e:
      print(e,"ssh ERROR")
    finally:
      self.ssh_client.close()
 
'''
在别的项目中被调用使用如下方法
import ssh as ssh
 
if __name__ == '__main__':
  ssh.ssh().sftp_exec_command("--command information--")
'''
 
'''
if __name__ == '__main__':
  rect = ssh().sftp_exec_command("")
  print(rect)
'''

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Tornado服务器中绑定域名、虚拟主机的方法
Aug 22 Python
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
Apr 05 Python
批处理与python代码混合编程的方法
May 19 Python
python数据结构链表之单向链表(实例讲解)
Jul 25 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
Jun 13 Python
opencv实现图片模糊和锐化操作
Nov 19 Python
Django框架登录加上验证码校验实现验证功能示例
May 23 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
Apr 20 Python
python filecmp.dircmp实现递归比对两个目录的方法
May 22 Python
python中os包的用法
Jun 01 Python
Django-celery-beat动态添加周期性任务实现过程解析
Nov 26 Python
python内置模块之上下文管理contextlib
Jun 14 Python
解决django框架model中外键不落实到数据库问题
May 20 #Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
May 20 #Python
让Django的BooleanField支持字符串形式的输入方式
May 20 #Python
django 解决model中类写不到数据库中,数据库无此字段的问题
May 20 #Python
基于Python脚本实现邮件报警功能
May 20 #Python
完美解决Django2.0中models下的ForeignKey()问题
May 19 #Python
Django 解决model 反向引用中的related_name问题
May 19 #Python
You might like
PHP中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
Yii使用ajax验证显示错误messagebox的解决方法
2014/12/03 PHP
php安装swoole扩展的方法
2015/03/19 PHP
php登录超时检测功能实例详解
2017/03/21 PHP
javascript showModalDialog模态对话框使用说明
2009/12/31 Javascript
通过javascript的匿名函数来分析几段简单有趣的代码
2010/06/29 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
jquery图片放大功能简单实现
2013/08/01 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
javascript的push使用指南
2014/12/05 Javascript
javascript事件委托的用法及其好处简析
2016/04/04 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
微信小程序多列选择器range-key使用详解
2020/03/30 Javascript
Vue axios设置访问基础路径方法
2018/09/19 Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
Vue父组件监听子组件生命周期
2020/09/03 Javascript
[02:28]DOTA2英雄基础教程 灰烬之灵
2013/12/19 DOTA
[48:31]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第二场 12.17
2020/12/19 DOTA
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
使用Python下的XSLT API进行web开发的简单教程
2015/04/15 Python
python实现解数独程序代码
2017/04/12 Python
python如何把嵌套列表转变成普通列表
2018/03/20 Python
使用python对文件中的数值进行累加的实例
2018/11/28 Python
pytorch 自定义数据集加载方法
2019/08/18 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
使用HTML5 Canvas API控制字体的显示与渲染的方法
2016/03/24 HTML / CSS
阿拉伯世界最大的电子卖场:Souq埃及
2016/08/01 全球购物
Java如何读取CLOB字段
2013/10/10 面试题
毕业生求职找工作的自我评价范文
2013/11/27 职场文书
人事科岗位职责范本
2014/03/02 职场文书
软件专业毕业生个人自我鉴定
2014/04/17 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
2022/05/30 NodeJs