探测服务器存活率和密码

厂商新交付一批设备,给一个用户名密码,领导要求验证一下所有的机器是不是正常运行,用户名密码是不是正确,机房远在天边服务器数量又多,一个一个来肯定是不行的

版本:Python2.7.9

模块:paramiko、multiprocessing

备注:默认使用root用户

#!/usr/bin/env python
# coding:utf-8

# 探测服务器存活率和密码
# 此脚本需要配合nmap使用,所以需要在linux环境下
# 运行结束后会在当前目录生成一个at_last文件里面记录列表中机器的探测信息

import os
import time
import  paramiko
import multiprocessing 

# 需要探测的服务器密码列表和ip地址列表
password = [‘123456789‘, ‘abcdefg‘, ‘root111111‘, ‘111111‘, ‘123456‘]
ip_list = [‘172.18.31.75‘, ‘172.18.31.76‘, ‘10.10.10.77‘, ‘10.10.31.80‘, ‘10.10.31.81‘, ‘172.18.31.82‘]
# ip地址列表可以使用循环生成,具体每个人的网段可能不一样,请自行修改代码

def file_write(filename, neirong):
    at = open(filename, ‘a‘)
    at.write(‘%s \n‘ % neirong)
    at.close()

def network_test(ip):
    # 使用nmap测试网络的连通性
    sss = os.popen("nmap -sP %s|grep Host|grep up|awk ‘{print $3}‘" % ip)
    sun = sss.read()
    if ‘up‘ in sun:
        return True
    else:
        return False

def ssh_test(ip, password):
    # 测试当前密码是否可以连接服务器
    sun = False
    port = 22
    username = ‘root‘
    s = paramiko.SSHClient()
    s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    try:
        s.connect(ip, port, username, password)
        s.close()
        sun = True
    except "Authentication":
        pass
    finally:
        return sun

def ssh_run(ip):  # 执行函数
    sun = 1
    if not network_test(ip):
        print "\033[1;31m%s\033[0m is no" % ip
        file_write("at_last", "%s ==>> no ==>> network" % ip)
    else:
        for i_in in password:
            if ssh_test(ip, i_in):
                print "%s is ok,password is %s" % (ip, i_in)
                file_write("at_last", "%s ==>> ok ==>> %s" % (ip, i_in))
                sun = 0
                break
        if sun == 1:
            file_write("at_last", "%s ==>> no ==>> password" % ip)
            print "\033[1;31m%s\033[0m is no" % ip

def sun_run(x):
    # 开启多线程运行 x代表最多开多少线程
    sun_pool = multiprocessing.Pool(processes=x)
    for i in ip_list:
        sun_pool.apply_async(ssh_run, (i,))
    sun_pool.close()
    sun_pool.join()

if "__main__" == __name__:
    sun_time_01 = int(time.time())
    sun_run(30)
    sun_time_02 = int(time.time())
    print "共耗时%s秒" % str(sun_time_02 - sun_time_01)
时间: 2025-01-15 15:42:21

探测服务器存活率和密码的相关文章

ahjesus SSHkey登陆linux服务器,无需密码,ubuntu

cd ~/.ssh/如果目录不存在就新建一个 mkdir ~/.ssh制作公匙 ssh-keygen -t rsa默认会生成id_rsa.pub的公匙将公匙推送到指定的服务器 scp id_rsa.pub [email protected]:~/.ssh/id_rsa.pub登录到服务器 ssh [email protected]执行如下命令cd ~/.sshcat id_rsa.pub >> authorized_keys销毁目录下公匙 rm id_rsa.pub退出服务器 exit 下次登

Xshell连接linux(deepin)时提示ssh服务器拒绝了密码,请再试一次解决方法

用Xshell root连接时显示ssh服务器拒绝了密码,应该是应该是sshd的设置不允许root用户用密码远程登录 修改 /etc/ssh/sshd_config文件,注意,安装了openssh才会有这个文件,如果文件不存在请检查是否安装了openssh. 输入以下命令 找到 改成 如果不能更改,说明权限不够.使用root权限. 然后输入命令 /etc/init.d/ssh restart 重启ssh服务即可. 如果不行,接直接重启Linux

安装网站时出现“连接数据库出现数据库服务器或登录密码无效,无法连接数据库,请重新设定”解决方法

在安装织梦网站时出现  "连接数据库出现数据库服务器或登录密码无效,无法连接数据库,请重新设定" 但是数据库用户名和密码是正确的,在服务器端完全可以进入到数据库的. 于是关闭php的sql安全模式. 把PHP.INI 里面的 sql.safe_mode = on  改成 sql.safe_mode = off   就可以了. 安装网站时出现"连接数据库出现数据库服务器或登录密码无效,无法连接数据库,请重新设定"解决方法

Mysql(Linux服务器)root用户密码忘记重置方法

MySQL是非常常见的开源数据库,使用者众多,若是不小心忘记了安装在服务器的mysql密码,无法登陆,应该如何重置呢?方法很简单,现在和大家分享下.(系统环境:CentOs 6.5  软件:Mysql) 1.首先确认服务器是处于安全的状态,也就是没有人能够任意地连接MySQL数据库.因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的状态下. 2.修改MySQL的登录设置: # vi /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-

利用XMLHTTP检测URL及探测服务器信息

<html> <head> <title>利用XMLHTTP检测URL及探测服务器信息</title> <META http-equiv=Content-Type content="text/html; charset=gb2312"> <meta name="Generator" content="EditPlus"> <meta name="Author&

ubuntu设置root密码及 Xftp连接linux(ubuntu)时提示ssh服务器拒绝了密码,请再试一次

原文:ubuntu设置root密码及 Xftp连接linux(ubuntu)时提示ssh服务器拒绝了密码,请再试一次 alt+f2,在弹出的运行窗口中输入:gnome-terminal sudo?passwd?root,回车后按提示输入两次root的密码 用xftp root连接时显示ssh服务器拒绝了密码,请重新连接.由于sshd的设置不允许root用户用密码远程登录,修改/etc/ssh/sshd_config文件,但必须是安装了openssh才会有这个文件,如果文件不存在,请检查是否安装了

记一次服务器忘记root密码的总结

案例:服务器忘记root密码无法进入系统 相关参数 single =>单用户模式passwd =>命令行修改密码 解决方案 单用户模式正常修改进入单用户模式 1 单用户模式直接修改成功 操作步骤 1.1 重启linux系统,3秒之内要按一下回车,出现如下界面 1.2 上下移动到第二行,最后边输入 single,有一个空格. (具体方法为按向下尖头移动到第二行,按"e"进入编辑模式) 1.3 在后边加上single 回车 1.4 最后按"b"启动,启动后就

Linux 通过Xftp访问提示SSH服务器拒绝了密码问题解决

配置SFTP连接,使用root用户一直提示“SSH服务器拒绝了密码”.一直连接会叫重复输入root的密码. 后面通过查看ssh的一些相关资料,找到了解决途径.其实就是更改sshd的配置文件信息即可完成. ①输入命令,进入到sshd的配置文件:sudo vim /etc/ssh/sshd_config ②找到如下Authentication配置,使用 i 开启编辑: 将其更改为:# Authentication: LoginGraceTime 120 PermitRootLogin yes Str

SharePoint 更新服务器场管理员密码

前言 很多客户都不允许服务器场管理员账号是永不过期的,这样一方面不安全,另外,也不符合很多公司的安全策略. 正文 所以,我们就会遇到定期修改密码的操作,说真的,这个操作有点sao,因为我们很多时候会用到这个密码. 先说说如何操作,首先,需要在AD里更新密码,当然,更新密码的方式有很多种,这里是有一个操作,就是管理员密码改了,我们需要去更新SharePoint Farm. 然后,我们需要更新SharePoint Farm的密码,这时候,PowerShell 又该上场了(真的是IT运维利器,专治各种