首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >python数据库操作对主机批量管理

python数据库操作对主机批量管理

作者头像
程序员同行者
发布于 2018-06-22 16:38:46
发布于 2018-06-22 16:38:46
1.4K0
举报
文章被收录于专栏:程序员同行者程序员同行者
代码语言:javascript
复制
 1 import paramiko
 2 import MySQLdb
 3 conn = MySQLdb.connect(host='192.168.1.101',user='root',passwd='123',db='host')
 4 cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
 5 reCout = cur.execute('select pass,users,ip,name from  host,user WHERE `user`.name = "root" and `user`.id=`host`.id')
 6 nRet = cur.fetchall()
 7 conn.commit()
 8 cur.close()
 9 conn.close()
10 for i in  nRet:
11     hosts = i['ip']
12     users = i ['users']
13     passs = i['pass']
14     print hosts,users,passs
15     transport = paramiko.Transport((hosts, 22))
16     transport.connect(username=users, password=passs)
17     ssh = paramiko.SSHClient()
18     ssh._transport = transport
19     stdin, stdout, stderr = ssh.exec_command('ls /root')
20     print stdout.read()
21     transport.close()

数据表

2.以组的方式批量管理

代码语言:javascript
复制
import paramiko
import MySQLdb
conn = MySQLdb.connect(host='192.168.1.101',user='root',passwd='123',db='host')
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
reCout = cur.execute('select pass,users,ip,name from  host,user WHERE `user`.name = "admin" and `user`.id=`host`.id')
nRet = cur.fetchall()
conn.commit()
cur.close()
conn.close()
for i in  nRet:
    hosts = i['ip']
    #users = i ['users']
    groups =i['name']
    passs = i['pass']
    print hosts,groups,passs
    transport = paramiko.Transport((hosts, 22))
    transport.connect(username=groups, password=passs)
    ssh = paramiko.SSHClient()
    ssh._transport = transport
    stdin, stdout, stderr = ssh.exec_command('ls /home/')
    print stdout.read()
    transport.close()

数据结构

主机列表

组列表

组列表的id为主机列表id的外键

查询语句

select pass,users,ip,name from  host,user WHERE `user`.name = "admin" and `user`.id=`host`.id

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-12-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档