服务器在线 - 服务器软件 - 网站地图 服务器在线,专注于服务器技术!

当前位置:主页 > 编程脚本 > Python > 正文

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寻求帮助。


相关内容
最新热点内容