python小白-day9 数据库操作与Paramiko模块

paramiko模块

SSHClient

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

基于用户名密码连接:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

import paramiko

# 创建SSH对象

ssh = paramiko.SSHClient()

# 允许连接不在know_hosts文件中的主机

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 连接服务器

ssh.connect(hostname=‘192.168.11.200‘, port=22, username=‘hetan‘, password=‘123456‘)

# 执行命令

stdin, stdout, stderr = ssh.exec_command(‘df‘)

# 获取命令结果

result = stdout.read()

print(result.decode())

# 关闭连接

ssh.close()

SSHClient 封装 Transport:


1

2

3

4

5

6

7

8

9

10

11

12

import paramiko

transport = paramiko.Transport((‘192.168.11.200‘, 22))

transport.connect(username=‘hetan‘, password=‘123456‘)

ssh = paramiko.SSHClient()

ssh._transport = transport

stdin, stdout, stderr = ssh.exec_command(‘df‘)

print(stdout.read().decode())

transport.close()

基于公钥密钥连接:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

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=‘192.168.11.200‘, port=22, username=‘hetan‘, key=private_key)

 

# 执行命令

stdin, stdout, stderr = ssh.exec_command(‘df‘)

# 获取命令结果

result = stdout.read()

print(result.decode())

# 关闭连接

ssh.close()

SSHClient 封装 Transport:


1

2

3

4

5

6

7

8

9

10

11

12

13

import paramiko

private_key = paramiko.RSAKey.from_private_key_file(‘/home/auto/.ssh/id_rsa‘)

transport = paramiko.Transport((‘192.168.11.200‘, 22))

transport.connect(username=‘hetan‘, pkey=private_key)

ssh = paramiko.SSHClient()

ssh._transport = transport

stdin, stdout, stderr = ssh.exec_command(‘df‘)

transport.close()

SFTPClient

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

基于用户名密码上传下载


1

2

3

4

5

6

7

8

9

10

11

12

import paramiko

 

transport = paramiko.Transport((‘192.168.11.200‘,22))

transport.connect(username=‘hetan‘,password=‘123456‘)

 

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()

基于公钥密钥上传下载


1

2

3

4

5

6

7

8

9

10

11

12

13

14

import paramiko

private_key = paramiko.RSAKey.from_private_key_file(‘/home/auto/.ssh/id_rsa‘)

transport = paramiko.Transport((‘192.168.11.200‘, 22))

transport.connect(username=‘hetan‘, 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()

上传文件并改名:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

#!/usr/bin/env python

import paramiko

import uuid

class Haproxy(object):

    def __init__(self):

        self.host = ‘192.168.11.200‘

        self.port = 22

        self.username = ‘hetan‘

        self.pwd = ‘123456‘

        self.__k = None

    def create_file(self):

        file_name = str(uuid.uuid4())

        with open(file_name,‘w‘) as f:

            f.write(‘sb‘)

        return file_name

    def run(self):

        self.connect()

        self.upload()

        self.rename()

        self.close()

    def connect(self):

        transport = paramiko.Transport((self.host,self.port))

        transport.connect(username=self.username,password=self.pwd)

        self.__transport = transport

    def close(self):

        self.__transport.close()

    def upload(self):

        # 连接,上传

        file_name = self.create_file()

        sftp = paramiko.SFTPClient.from_transport(self.__transport)

        # 将location.py 上传至服务器 /tmp/test.py

        sftp.put(file_name, ‘/home/hetan/tttttttttttt.py‘)

    def rename(self):

        ssh = paramiko.SSHClient()

        ssh._transport = self.__transport

        # 执行命令

        stdin, stdout, stderr = ssh.exec_command(‘mv /home/hetan/tttttttttttt.py /home/hetan/ooooooooo.py‘)

        # 获取命令结果

        result = stdout.read()

ha = Haproxy()

ha.run()

数据库操作

Python MySQL API

一、插入数据


1

2

3

4

5

6

7

8

9

10

11

12

13

14

import pymysql

  

conn = pymysql.connect(host=‘192.168.11.200‘,user=‘hetan‘,passwd=‘123456‘,db=‘mydb‘)

  

cur = conn.cursor()

  

reCount = cur.execute(‘insert into students(name,sex,age,tel) values(%s,%s,%s,%s)‘,(‘liuyao‘,‘man‘,‘20‘,‘1235‘))

  

conn.commit()

  

cur.close()

conn.close()

  

print(reCount)


二、批量插入数据


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

import pymysql

  

conn = pymysql.connect(host=‘192.168.11.200‘,user=‘hetan‘,passwd=‘123456‘,db=‘mydb‘)

  

cur = conn.cursor()

li = [

    (‘alex‘,‘man‘,18,‘1515151‘),

    (‘wupeiqi‘,‘man‘,18,‘1551515‘)

]

  

reCount = cur.executemany(‘insert into students(name,sex,age,tel) values(%s,%s,%s,%s)‘,li)

  

conn.commit()

  

cur.close()

conn.close()

  

print(reCount)


三、删除数据


1

2

3

4

5

6

7

8

9

10

11

12

13

14

import pymysql

  

conn = pymysql.connect(host=‘192.168.11.200‘,user=‘hetan‘,passwd=‘123456‘,db=‘mydb‘)

  

cur = conn.cursor()

reCount = cur.execute(‘delete from students where id=%s‘,(‘1‘,))

  

conn.commit()

  

cur.close()

conn.close()

  

print(reCount)


四、修改数据


1

2

3

4

5

6

7

8

9

10

11

12

13

14

import pymysql

  

conn = pymysql.connect(host=‘192.168.11.200‘,user=‘hetan‘,passwd=‘123456‘,db=‘mydb‘)

  

cur = conn.cursor()

reCount = cur.execute(‘update students SET name=%s WHERE id=%s‘,(‘hetan‘,‘2‘,))

  

conn.commit()

  

cur.close()

conn.close()

  

print(reCount)


五、查数据?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

import pymysql

  

conn = pymysql.connect(host=‘192.168.11.200‘,user=‘hetan‘,passwd=‘123456‘,db=‘mydb‘)

  

cur = conn.cursor()

reCount = cur.execute(‘select * from students‘)

  

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)


查询全部:


1

2

3

4

5

6

7

8

9

10

11

12

13

import pymysql

  

conn = pymysql.connect(host=‘192.168.11.200‘,user=‘hetan‘,passwd=‘123456‘,db=‘mydb‘)

  

cur = conn.cursor()

reCount = cur.execute(‘select * from students‘)

  

print(cur.fetchall())

cur.close()

conn.close()

  

print(reCount)

?

来自为知笔记(Wiz)

时间: 2024-08-06 12:00:21

python小白-day9 数据库操作与Paramiko模块的相关文章

用Python进行SQLite数据库操作

用Python进行SQLite数据库操作 -----转自:http://www.cnblogs.com/yuxc/archive/2011/08/18/2143606.html 简单的介绍 SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身.它是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/L

[python]用Python进行SQLite数据库操作

用Python进行SQLite数据库操作 1.导入Python SQLITE数据库模块 Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~ import sqlite3 2. 创建/打开数据库 在调用connect函数的时候,指定库名称,如果指定的数据库存在就直接打开这个数据库,如果不存在就新创建一个再打开. cx = sqlite3.connect("E:/test.db") 也可以创建数据库在内存中. con = sqlite3.c

Python之MySQL操作及Paramiko模块操作

一.MySQL简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一. MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性. MySQL所使用的 SQL

Python之路【第八篇】:堡垒机实例以及数据库操作(paramiko)

堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.con

Python进行MySQL数据库操作

最近开始玩Python,慢慢开始喜欢上它了,以前都是用shell来实现一些自动化或者监控的操作,现在用Python来实现,感觉更棒,Python是一门很强大的面向对象语言,所以作为一个运维DBA或者运维来说,都应该学会用Python来提高工作效率.下面简单的介绍一下Python DB API MySQLdb 使用Python DB API访问数据库的流程图: 在Centos下安装MySQLdb模板(为了方便演显,我用yum安装,也是最快最省事的安装): yum install MySQL-pyt

进击的Python【第九章】:paramiko模块、线程与进程、各种线程锁、queue队列、生产者消费者模型

一.paramiko模块 他是什么东西? paramiko模块是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. 先来个实例: 1 import paramiko 2 # 创建SSH对象 3 ssh = paramiko.SSHClient() 4 5 # 允许连接不在know_hosts文件中的主机 6 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 7 # 连接服务器 8 ss

python学习之数据库操作

一.数据库基本操作 数据库操作: 查看存储引擎: show engines; 查看数据库: show databases; 或者show create database oldboy\G 创建数据库: create database oldboy default charset=utf8; 删除数据库: drop database oldboy; 进入数据库:  use oldboy; 数据表操作: 创建数据表: create table tb_emp1 (     -> id int(11),

【转】用Python进行SQLite数据库操作

简单的介绍 SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身.它是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl.C#.PHP.Java等,还有ODBC接口,同样比起Mysql.PostgreSQL这两款开源世

python的mysql数据库操作

python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase 我目前使用的是mysql数据库,所以这里只是记录了python中mysql的使用 在写my