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


paramiko模块

SSHClient

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

基于用户名密码连接:

12345678910111213141516import 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:

123456789101112import paramikotransport = paramiko.Transport((‘192.168.11.200‘, 22))transport.connect(username=‘hetan‘, password=‘123456‘)ssh = paramiko.SSHClient()ssh._transport = transportstdin, stdout, stderr = ssh.exec_command(‘df‘)print(stdout.read().decode())transport.close()

基于公钥密钥连接:

123456789101112131415161718import paramikoprivate_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:

12345678910111213import paramikoprivate_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 = transportstdin, stdout, stderr = ssh.exec_command(‘df‘)transport.close()

SFTPClient

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

基于用户名密码上传下载

123456789101112import paramikotransport = paramiko.Transport((‘192.168.11.200‘,22))transport.connect(username=‘hetan‘,password=‘123456‘)sftp = paramiko.SFTPClient.from_transport(transport)# 将location.py 上传至服务器 /tmp/test.pysftp.put(‘/tmp/location.py‘, ‘/tmp/test.py‘)# 将remove_path 下载到本地 local_pathsftp.get(‘remove_path‘, ‘local_path‘)transport.close()

基于公钥密钥上传下载

1234567891011121314import paramikoprivate_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.pysftp.put(‘/tmp/location.py‘, ‘/tmp/test.py‘)# 将remove_path 下载到本地 local_pathsftp.get(‘remove_path‘, ‘local_path‘)transport.close()

上传文件并改名:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#!/usr/bin/env pythonimport paramikoimport uuidclass Haproxy(object):def __init__(self):self.host = ‘192.168.11.200‘self.port = 22self.username = ‘hetan‘self.pwd = ‘123456‘self.__k = Nonedef create_file(self):file_name = str(uuid.uuid4())with open(file_name,‘w‘) as f:f.write(‘sb‘)return file_namedef 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 = transportdef close(self):self.__transport.close()def upload(self):# 连接,上传file_name = self.create_file()sftp = paramiko.SFTPClient.from_transport(self.__transport)# 将location.py 上传至服务器 /tmp/test.pysftp.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()

技术分享

数据库操作

PythonMySQLAPI

一、插入数据

1234567891011121314import pymysqlconn = 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)

技术分享
二、批量插入数据

123456789101112131415161718import pymysqlconn = 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)

技术分享
三、删除数据

1234567891011121314import pymysqlconn = 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)

技术分享

四、修改数据

1234567891011121314import pymysqlconn = 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)

技术分享

五、查数据?

1234567891011121314151617181920import pymysqlconn = 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)

技术分享

查询全部:

12345678910111213import pymysqlconn = 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)

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

相关内容

    暂无相关文章

评论关闭