zabbix自动同步ldap帐号到数据库

背景:之前公司已经在使用zabbix了 并且使用了ldap 验证  但是公司人数过多,我不想一个个添加用户,所以之后我写了个python脚本每天同步ldap账户到zabbix数据库。

#此脚本用于自动同步ldap帐号到zabbix数据库
import pymysql
import subprocess
class Add_User(object):
def __init__(self):
self.wesearch = subprocess.getstatusoutput(“ldapsearch -x -LLL -D cn=****,dc=****,dc=**** -w ***** -H ldap://******* -b dc=****,dc=***** | sed ‘1,12’d|sed ‘/^$/d’|egrep -v ‘ou=vPeople’|grep uid| egrep -v ‘[1,2,3,4,5,6,7,8,9]’| awk -F ‘: ‘ ‘{print $2}'”)
self.welist = self.wesearch[1].split(‘\n’)
def insert_user(self):
conn=pymysql.connect(host=’*********’, port=3306, user=’zabbix’, passwd=’zabbix_1′, db=’zabbix’, charset=’utf8′)
cur = conn.cursor()
n=4
w=10
for user in self.welist:
n=n+1
w=w+1
search = cur.execute(“””select * from users where alias = %s””” ,(user,))
if not search:  #每天同步增加的部分所以要先做判断是否能查到
sql = “insert into users(userid,lang,name,alias,theme) values (‘%s’,’%s’,’%s’,’%s’,’dark-theme’)” %(n,’zh_CN’,user,user)
cur.execute(sql)
sql = “insert into users_groups(id,usrgrpid,userid) values (‘%s’,’%s’,’%s’)” %(w,8,n)
cur.execute(sql)
if sql:
print(sql)
conn.commit()
cur.close()
conn.close()
if __name__ == ‘__main__’:
a=Add_User()
a.insert_user()

发布了49 篇原创文章 · 获赞 39 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_22543991/article/details/82344301
今日推荐