python paramiko多线程批量修改主机账号密码

#!/usr/bin/env python

#-*- coding:utf:8 -*-

import paramiko,time,threading

def reset_passwd(line):

try:

test=paramiko.Transport((line.split()[0],22))

test.connect(username=‘username‘,password=‘password‘)

chan=test.open_session()

chan.settimeout(5)

chan.get_pty()

chan.invoke_shell()

chan.send(‘passwd\n‘)

time.sleep(1)

chan.send(‘password\n‘)

time.sleep(1)

chan.send(‘newpassword\n‘)

time.sleep(1)

chan.send(‘newpassword\n‘)

time.sleep(1)

chan.close()

lock.acquire()

successful_ip_list.append(‘%s: 连接成功‘%(line.split()[0]))

lock.release()

except Exception, e:

lock.acquire()

failure_ip_list.append(‘%s: 连接失败‘%(line.split()[0]))

lock.release()

successful_ip_list = []

failure_ip_list = []

if __name__ == ‘__main__‘:

lock = threading.Lock()

threads = []

start = time.time()

# info.txt文件只有IP地址,每行一个IP地址

info = file(‘info.txt‘,‘r+‘)

for line in info.readlines():

t = threading.Thread(target=reset_passwd,args=(line,))

threads.append(t)

t.start()

for t in threads:t.join()

if not successful_ip_list:print ‘没有成功连接信息‘

else:

for line in successful_ip_list:print line

print ‘-‘*20

if not failure_ip_list:print ‘没有失败连接信息‘

else:

for line in failure_ip_list:print line

successful_number = len(successful_ip_list)

failure_number = len(failure_ip_list)

end = time.time()

print "成功连接 %s 台服务器,失败连接 %s 台服务器。共用时 %s 秒"%(successful_number,failure_number,(end - start))

时间: 2024-10-10 16:01:25

python paramiko多线程批量修改主机账号密码的相关文章

python paramiko 多线程批量执行指令及批量上传文件和目录

源代码: https://github.com/jy1779/be.git 环境需求: 1.python3 2.paramiko pip install --upgrade pip apt-get install libssl-dev pip3 install paramiko 3.执行权限 chmod +x becmd.py ln -s /root/be/bin/becmd.py /usr/local/sbin/becmd chmod +x besync.py ln -s /root/be/b

批量修改域账号密码属性为永不过期

管理员运行命令提示符输入: dsquery user -limit 0 "ou=ouname,dc=域名,dc=com" | dsmod user -pwdneverexpires yes

批量修改主机密码并发送到邮箱

1. 前言 需求:一批云主机,要求每周修改一次密码. 2. 实践 使用 ansible + sendmail 即可实现. 主机信息: (1)安装 sendmail wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz tar zxf sendEmail-v1.56.tar.gz -C /usr/src/ cd /usr/src/sendEmail-v1.56/ cp -a sendEmail

python批量修改SecureCRT会话密码

#利用python批量修改SecureCRT 会话密码 # -*- coding:utf-8 -*- import os,re def CRT_Path(path,*args,**kwargs):     for (dirpath, dirnames, filenames) in os.walk(path):         for file in filenames:             fullname = os.path.join(dirpath, file)             

批量修改主机名脚本

脚本思路:生成秘钥后,批量传输秘钥,根据hosts文件批量修改主机名. 运行环境:用户名统一是root,密码统一是123456 脚本 #!/bin/bash # check expect first ############################################################# passwd=123456 key=/root/.ssh/id_rsa ip=`ifconfig eth0 | sed -n '2p'| cut -d: -f2 | cut -

组策略技巧之批量修改本地管理员密码

         基于一些特殊的原因我们需要修改本地管理员的密码,正常情况下,我们需要手动修改 但是在域环境中,我们可以通过组策略来统一修改本地管理员密码.修改方法个人找到的可以 分为两种,一种是通过脚本来统一更改(缺点很明显是比较死板,缺乏灵活性)一种是通过组策略 新增加的首选项功能来统一修改(有点很明显就是灵活性很强,定制型好).         一.使用脚本来修改密码 脚本是用的是VBS脚本 strComputer = "."   Set objUser = GetObject(

MySQL修改root账号密码的方法

MySQL修改root账号密码的方法 MySQL数据库中如何修改root用户的密码呢?下面总结了修改root用户密码的一些方法 1: 使用set password语句修改 mysql> select user();+----------------+| user() |+----------------+| root@localhost |+----------------+1 row in set (0.08 sec) mysql> set password=password('123456

python paramiko 多线程

Python paramiko多线程执行命令的脚本,加入了threading多线程,执行起来感觉效率很一般,有时候线程还会等待延迟. 据说别人测试的数据,Python多线程中每个时刻只有1个线程运行,每个逻辑CPU利用率都很低,只是有时候换换CPU运行.虽然不知道别人怎么观察的,不过执行起来确实慢,耗资源也比单线程高很多. #!/usr/bin/python # -*- coding: utf-8 -*- import paramiko,threading,sys class SSH_cmd(t

debian官网qcow2镜像修改root账号密码,开启ssh,修改源,语法高亮等

一.准备工作 1.下载官网qcow2镜像文件 wget https://cloud.debian.org/images/cloud/OpenStack/10.2.0/debian-10.2.0-openstack-amd64.qcow2 镜像文件信息 [debian-10.2-cloud] name=Debian 10.2.0 (Buster) Cloud osinfo=debian10 arch=x86_64 file=debian-10.2.0-openstack-amd64.qcow2 c