Paramiko

该模块基于SSH用于连接远程服务器并执行相关操作

SSHClient

用于连接远程服务器并执行基本命令

import paramiko# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机(第一次登陆时需要输入yes,这行代码自动输入yes)
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname='c1.salt.com', port=22, username='rooti', password='123')# 执行命令
stdin, stdout, stderr = ssh.exec_command('df')
# 获取命令结果
result = stdout.read()# 关闭连接
ssh.close()

SSHClient 封装 Transport

import paramikotransport = paramiko.Transport(('hostname', 22))
transport.connect(username='rooti', password='123')ssh = paramiko.SSHClient()
ssh._transport = transportstdin, stdout, stderr = ssh.exec_command('df')
print stdout.read()transport.close()

基于公钥连接:

import paramiko
#密钥位置
private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa')# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname='c1.salt.com', port=22, username='rooti', key=private_key)# 执行命令
stdin, stdout, stderr = ssh.exec_command('df')
# 获取命令结果
result = stdout.read()# 关闭连接
ssh.close()

SSHClient 封装 Transport

import paramikoprivate_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa')transport = paramiko.Transport(('hostname', 22))
transport.connect(username='wupeiqi', pkey=private_key)ssh = paramiko.SSHClient()
ssh._transport = transportstdin, stdout, stderr = ssh.exec_command('df')transport.close()

SFTPClient

用于连接服务器并执行上传下载

基于用户名密码:

import paramikotransport = paramiko.Transport(('hostname',22))
transport.connect(username='root',password='123')sftp = paramiko.SFTPClient.from_transport(transport)
# 将location.py 上传至服务器 /tmp/test.py
sftp.put('/tmp/location.py', '/tmp/test.py')
# 将remove_path 下载到本地 local_path
sftp.get('remove_path', 'local_path')transport.close()

基于公钥:

import paramikoprivate_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa')transport = paramiko.Transport(('hostname', 22))
transport.connect(username='wupeiqi', pkey=private_key )sftp = paramiko.SFTPClient.from_transport(transport)
# 将location.py 上传至服务器 /tmp/test.py
sftp.put('/tmp/location.py', '/tmp/test.py')
# 将remove_path 下载到本地 local_path
sftp.get('remove_path', 'local_path')transport.close()

数据库

python MySQL API

插入数据:

import MySQLdbconn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='1234',db='mydb')cur = conn.cursor()reCount = cur.execute('insert into UserInfo(Name,Address) values(%s,%s)',('alex','usa'))
# reCount = cur.execute('insert into UserInfo(Name,Address) values(%(id)s, %(name)s)',{'id':12345,'name':'wupeiqi'})

conn.commit()cur.close()
conn.close()print(reCount)

批量插入:

import MySQLdbconn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='1234',db='mydb')cur = conn.cursor()li =[('alex','usa'),('sb','usa'),
]
reCount = cur.executemany('insert into UserInfo(Name,Address) values(%s,%s)',li)conn.commit()
cur.close()
conn.close()print(reCount)

删除数据:

import MySQLdbconn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='1234',db='mydb')cur = conn.cursor()reCount = cur.execute('delete from UserInfo')conn.commit()cur.close()
conn.close()print(reCount)

修改数据:

import MySQLdbconn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='1234',db='mydb')cur = conn.cursor()reCount = cur.execute('update UserInfo set Name = %s',('alin',))conn.commit()
cur.close()
conn.close()print(reCount)

查询数据:

import MySQLdbconn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='1234',db='mydb')
cur = conn.cursor()reCount = cur.execute('select * from UserInfo')print(cur.fetchone())
print(cur.fetchone())
cur.scroll(-1,mode='relative')
print(cur.fetchone())
print(cur.fetchone())
cur.scroll(0,mode='absolute')
print(cur.fetchone())
print(cur.fetchone())cur.close()
conn.close()print(reCount)# ############################## fetchall  ##############################import MySQLdbconn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='1234',db='mydb')
#cur = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor)
cur = conn.cursor()reCount = cur.execute('select Name,Address from UserInfo')nRet = cur.fetchall()cur.close()
conn.close()print reCount
print nRet
for i in nRet:print(i[0],i[1])

转载于:https://www.cnblogs.com/binges/p/5289229.html

Paramiko,数据库相关推荐

  1. Spring Boot参考指南

    Spring Boot参考指南 作者 菲利普·韦伯,戴夫 Syer,约什 长,斯特凡 尼科尔,罗布 绞车,安迪·威尔金森,马塞尔 Overdijk,基督教 杜普伊斯,塞巴斯蒂安·德勒兹,迈克尔·西蒙斯 ...

  2. mysql网络数据库操作模块_15.mysql数据库操作与Paramiko模块

    堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: i ...

  3. day13 paramiko、数据库表操作

    Paramiko paramiko 模块官方网站: http://www.paramiko.org/ paramiko 模块功能概述: Paramiko 是一个python(2.6+,3.3+)的实现 ...

  4. 使用python 的paramiko制作堡垒机

    堡垒机-readme: (数据库为mysql) 1.如果数据库不存在,就创建数据库,对数据库的用户授权,创建表结构,和初始化一些数据 2.如果数据库存在,就跳到下一步 3.用户登录堡垒机进行验证 4. ...

  5. Python用MySQLdb, pymssql 模块通过sshtunnel连接远程数据库

    安全起见,数据库的访问多半是要做限制的,所以就有一个直接的问题是,往往多数时候,在别的机器上(比如自己本地),是不能访问数据库的,给日常使用造成了很大不便.所以前几天做了个需求,是希望在任何机器上都可 ...

  6. python连接linux堡垒机_利用Python Paramiko开发linux堡垒机

    1.Paramiko模块下的demo.py程序 前面利用Python中的Paramiko模块可以进行SSH的连接,以及用来传送文件(SFTP),但是无论是哪一种方式,连接都是短暂的,并非是长连的,即一 ...

  7. python ssh模块_python paramiko模块(ssh) 使用

    import paramiko from io import StringIO # 一般可以从数据库里读取秘钥字符串 key_str = """-----BEGIN RS ...

  8. python远程监控服务器多个日志_python压测+paramiko远程监下载日志+js测试报告

    关于压测客户端 netty nio压测端 package com.nio.test; import io.netty.bootstrap.Bootstrap; import io.netty.buff ...

  9. python paramiko模块下载_Python自动化运维实战:使用Python管理网络设备

    现在,我们已经知道如何在不同的操作系统中使用和安装Python以及如何使用EVE-NG搭建网络拓扑.在本章中,我们将学习如何使用目前常用的网络自动化库自动完成各种网络任务.Python可以在不同的网络 ...

最新文章

  1. php mysql 连接不上_PHP: 连接状态 - Manual
  2. 网站基于文本搜索的实现
  3. java浏览器实验报告_关于java实验报告模板
  4. 动态规划-最长回文子串
  5. 基本概念学习(9001)---指令系统
  6. 文件包含常见绕过方法
  7. 东北大姐剪纸被误认为油画,遭人质疑二十多年,只因太过逼真,看完后:真香!不愧是天下第一剪!...
  8. (收集)vim72 .vimrc的一个样本
  9. Python面向对象编程 __init__方法
  10. MySQL下bin-log的三种模式(ROW、Statement、Mixed)
  11. bootstrap入门
  12. landmark is float
  13. 如何在 Mac 上输入带重音符的字符?
  14. html提醒用户IE浏览器版本过低,引导更新或下载其他浏览器
  15. 简单银行管理系统C#版本
  16. OpenCV识别指定颜色(黑、灰、白、红、橙、黄、绿、青、蓝、紫)
  17. Android Studio出现APP闪退问题(My Application keeps stopping)
  18. ICMP协议之ping实现
  19. HTTP中200、302、304、404和500等响应状态码含义
  20. ColorMatrix 5*5颜色矩阵

热门文章

  1. ruby中DBI连接MySQL数据库步骤详解
  2. Silverlight实用窍门系列:22.Silverlight使用WebService调用C++,Delphi编写的DLL文件【实例源码下载】...
  3. Windows Mobile使用Web Service上传和下载二进制数据流
  4. leetcode 528. Random Pick with Weight
  5. 【转】JS回调函数--简单易懂有实例
  6. Gitlab+Jenkins学习之路(三)之gitlab权限管理--issue管理
  7. OpenDayLight Helium实验三 OpenDaylight二层转发机制实验
  8. 深入理解JavaScript定时机制
  9. TCP服务器和客户端的链接例子(侧重点在注意关闭套接子,减少套接子的描述子)
  10. 算法-------寻找旋转排序数组中的最小值