Posted in Python onApril 22, 2014
批量修改linux服务器密码,同时生成execl表格
#!/usr/bin/env python #coding:utf8 #随机生成自定义长度密码 from random import choice import string,pickle def GenPassword(length=8,chars=string.ascii_letters+string.digits): return ''.join([choice(chars) for i in range(length)]) def passlist(r_user,c_user,ip_list,web_list): dic={} for i in ip_list: if i.split()[1] in web_list: dic[i.split()[1]]=[i.split()[0],{r_user:GenPassword(32),c_user:GenPassword(32)}] else: dic[i.split()[1]]=[i.split()[0],{r_user:GenPassword(32)}] return dic def ip_list(ip_file): with open(ip_file) as file: ip_file=file.read().strip().split("\n") #web_list=[i for i in ip_file if i in web_list] return ip_file def save_dic(): dic=main() with open("../host_message.pickle","w") as fd: pickle.dump(dic,fd) def main(): file="/root/cui/script/python/ip.txt" web_list=[ip1,ip2,ip3,ip4] file_list=ip_list(file) file_dic_pass=passlist("root","www",file_list,web_list) return file_dic_pass if __name__=="__main__": save_dic()
#!/usr/bin/env python #coding:utf8 #批量修改密码主程序 import pickle from ssh_co.ssh_connect import sshd from command.ip_passwd import save_dic,main from execl import set_execl def read_dic(): with open("host_message.pickle","rb") as f: return pickle.load(f) def ssh_main(): pid_host=1 host_message=read_dic() host_list=host_message.keys() print host_list for host_msg in xrange(len(host_list)): host_attribute=(host_list[host_msg],port,user,passwd) ssh_conn=sshd(host_attribute,pid_host) if "www" in host_message[host_list[host_msg]][1].keys(): for username in xrange(len(host_message[host_list[host_msg]][1].keys())): try: user=host_message[host_list[host_msg]][1].keys()[username] passwd=host_message[host_list[host_msg]][1][host_message[host_list[host_msg]][1].keys()[username]] results=ssh_conn.set_ssh_cmd(u"/bin/echo %s|/usr/bin/passwd --stdin %s" %(passwd,user)) print results,host_list[host_msg],user+"-----------"+passwd except: print results,host_list[host_msg],user+"-----except------"+passwd else: user=host_message[host_list[host_msg]][1].keys()[0] passwd=host_message[host_list[host_msg]][1][host_message[host_list[host_msg]][1].keys()[0]] result=ssh_conn.set_ssh_cmd(u"/bin/echo %s|/usr/bin/passwd --stdin %s" %(passwd,user)) print result,host_list[host_msg],user+"-----------"+passwd if __name__ == "__main__": dic=main() with open("host_message.pickle","w") as fd: pickle.dump(dic,fd) set_execl() ssh_main()
python实现linux服务器批量修改密码并生成execl
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@