快捷搜索:  汽车  科技

python列表统计及删除(python利用paramiko模块批量统计服务器的分组信息)

python列表统计及删除(python利用paramiko模块批量统计服务器的分组信息)

需求如下:本人管理的大批量服务器,分给不同的用户使用,也就是说用户登陆上会有限制。这个限制是写在/etc/ssh/sshd_config里的AllowGroups里面的。如下图所示,而transport2这个组下面就有几百个用户了。这样只有transport2组的人才能登陆相关的服务器。有这个关键字,这样查看哪些服务器属于哪个组使用,就方便多了。

python列表统计及删除(python利用paramiko模块批量统计服务器的分组信息)(1)

def ssh_file_fix(): with open('server.txt' 'r' encoding='utf-8') as rfile: servers = rfile.readlines() # 按行读取 commframework = [] for item in servers: # 遍历列表, #commframework=[] d = dict(eval(item)) # 列表中的第一个元素,编写成字典 d.update(username="xxx" password="xxx" port='22') # 第一个元素更新 value_list = [] value_list.append(d['id']) value_list.append(d['username']) value_list.append(d['password']) value_list.append(d['port']) # hostinfo = "'" value_list[0] "' '" value_list[1] "' '" value_list[2] "' '" value_list[3] "'" hostinfo = value_list[0] ' ' value_list[1] ' ' value_list[2] ' ' value_list[3] hostinfo = hostinfo.strip() hostip username password port = hostinfo.split(' ') print(hostip) ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname=hostip port=port username=username password=password) stdin stdout stderr = ssh.exec_command('sudo /usr/bin/grep AllowGroups /etc/ssh/sshd_config') str_out = stdout.read().decode() a=str_out[26:].strip('\n') print (a) if a == 'a': result = "this is a-team,the group id is 1" print(result) commframework.append(hostip) print(commframework) elif a == 'b': result = "this is b-team,the group id is 2" print(result)

其中的一个输出如下图:

python列表统计及删除(python利用paramiko模块批量统计服务器的分组信息)(2)

猜您喜欢: