python批量修改centos密码
时间:2021-03-25 来源:未知 投稿:admin 点击:次
import paramiko import threading def (ip_list): with open(ip_list, 'r') as f: ip_list = f.readlines() for ip in ip_list: cmd="echo '{0}' | passwd --stdin {1}".format(ip.strip('n').split(' ')[3],ip.strip('n').split(' ')[1]) a = threading.Thread(target=ssh2, args=(ip.strip('n').split(' ')[0], ip.strip('n').split(' ')[1], ip.strip('n').split(' ')[2], cmd)) a.start() def (ip,username,passwd,cmd): try: ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(ip, 22, username, passwd, timeout=15) stdin, stdout, stderr = ssh.exec_command(cmd) stdin.write("Y") out = stderr.readlines() if out: print '========' + ip + "==================>ERROR" for o in out: print o[:-1] else: out = stdout.readlines() print '========' + ip + "==================>OK" for o in out: print o[:-1] except Exception, e: print '%stErrorn' % (e) if __name__=='__main__': IP_list('ip.list') threads = [2] =================================================== ip_list格式 ip username 更改前密码 更改后密码 =================================================== 新增日志版本 import os,sys import paramiko import threading def IP_list(ip_list): with open(ip_list, 'r') as f: ip_list = f.readlines() for ip in ip_list: cmd="echo '{0}' | passwd --stdin {1}".format(ip.strip('n').split(' ')[3],ip.strip('n').split(' ')[1]) a = threading.Thread(target=ssh2, args=(ip.strip('n').split(' ')[0], ip.strip('n').split(' ')[1], ip.strip('n').split(' ')[2], cmd)) a.start() def Write_log(log): pwd = os.getcwd() with open(pwd+'/'+sys.argv[0] + '_log','a') as f_log: f_log.write(log) def ssh2(ip,username,passwd,cmd): try: ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(ip, 22, username, passwd, timeout=15) stdin, stdout, stderr = ssh.exec_command(cmd) stdin.write("Y") out = stderr.readlines() if out: print '========' + ip + "==================>ERROR" Write_log( '========' + ip + "==================>ERRORn") for o in out: print o[:-1] Write_log(o[:-1]+'n') else: out = stdout.readlines() print '========' + ip + "==================>OK" Write_log('========' + ip + "==================>OKn") for o in out: print o[:-1] Write_log(o[:-1]+'n') except Exception, e: print '%stErrorn' % (e) Write_log('%stErrorn' % (e)) if __name__=='__main__': IP_list('ip.list') threads = [2]
如果您的问题仍未解决,还可以加入服务器在线技术交流QQ群:8017413寻求帮助。
相关内容