在对Linux服务器的维护过程中,有时需要及时的知道这些服务器能不能正常连接,以便及时联系管理员进行处理。假设这批服务器都是使用ssh的方式登陆,需要通过python程序进行检测:

安装Python第三方模块paramiko

pip install paramiko

在程序当前目录下建一份Linux服务器配置文档(servers.txt)

#内容如下(地址 账号 密码)空格分隔,多台服务器换行

112.33.33.33 root password

编写python脚本

#!/usr/bin/python

# coding=utf-8

"""

Server对象用来定义server的ip、用户名、密码以及连接日志等属性,

包含connect方法用于ssh登陆, run_cmd方法用于执行linux命令

"""

import paramiko

class Server():

def __init__(self, ip, username, password):

self.username = username

self.password = password

self.ip = ip

self.connect_result = ""

# ssh登陆并反馈连接成功或失败信息

def connect(self):

conn = paramiko.SSHClient()

conn.set_missing_host_key_policy(paramiko.AutoAddPolicy())

try:

conn.connect(self.ip, username=self.username, password=self.password)

self.connection = conn

self.connect_result = "Connect Server {0} {1} {2} Successfully!\n".format(

self.ip, self.username, self.password)

except:

self.connect_result = "Connect Server {0} {1} {2} Failed!\n".format(

self.ip, self.username, self.password)

#不能正常连接的server打印信息到控制台

print(self.connect_result)

return self.connect_result

# 该方法运行建立连接后执行linux命令

def run_cmd(self, command):

if self.connection is None:

print("Please run connect")

raise ValueError("Not connected")

(stdin, stdout, stderr) = self.connection.exec_command(command)

return stdout.read()

# 从文件读取servers信息ip 用户名 密码

def get_all_servers_login_info(server_file="./servers.txt"):

try:

f = open(server_file)

all_servers = f.read()

except:

print("ERROR: 读取文件{0}失败".format(server_file))

finally:

f.close()

all_servers = all_servers.split('\n')

ssh_list = []

for ssh in all_servers:

if (len(ssh) > 0):

ssh_list.append(ssh.split())

return ssh_list

if __name__ == '__main__':

# 读取servers.txt中的ip username password信息

all_servers_info = get_all_servers_login_info()

# 记录ssh登陆日志信息

connection_log = ""

# 逐个检查每个server ssh登陆情况

for server in all_servers_info:

ip, username, password = server[0], server[1], server[2]

conn = Server(ip, username, password)

connection_log += conn.connect()

# 将所有服务器ssh登陆检查信息写入日志文件

log_file = open("connect_result.log", 'w')

log_file.write(connection_log)

log_file.close()

运行脚本就可以检查所有的服务器状态了,模拟检查结果如下:

linux检查python安装情况,使用Python检测Linux服务器连接状态相关推荐

  1. python安装pandas模块-python安装numpy和pandas的方法步骤

    最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了.首要条件,python版本必须 ...

  2. linux服务器怎么连接无线网卡,在linux上怎么安装无线网卡驱动?_网站服务器运行维护,linux,无线网卡...

    怎么查看linux连接wifi的密码?_网站服务器运行维护 查看linux连接wifi密码的方法:首先打开终端输入代码[cd /etc/NetworkManager/system-connection ...

  3. python安装numpy-如何为python安装numpy和scipy?

    我厌倦了尝试为phyton 2.7.5安装numpy和scipy,我需要这个版本的python,因为我的最终目标是安装类(http://class-code.net/)和montepython(htt ...

  4. python安装pip_解决Python安装下载及Python环境的配置(pip,flake8,yapf)

    一.软件准备: 1.下载好Python和VScode VScode: https://code.visualstudio.com/ Python: https://www.python.org/ftp ...

  5. python安装教程-最新Python安装图文教程[很详细]

    如今,Python已经成为一种非常主流的编程语言了,很多小伙伴都开学习python,但是对于刚刚接触python的纯小白来说,不太会安装,下面我们就介绍介绍python最新安版本3.7.4的安装教程. ...

  6. python安装步骤图解-Python安装与卸载流程详细步骤(图解)

    Python安装流程: 一.下载 在网上(输入网址https://www.python.org/downloads/)下载Windows最新的python程序(我电脑为64位) 二.安装 根据自己的电 ...

  7. python安装numpy模块-python的numpy模块安装不成功简单解决方法总结

    为了画个图,被numpy这个模块的安装真的折腾疯了!!!一直装不上,花了几个小时,看了网上的很多教程.方法发现总结得不是很全,这里总结一下,防止大家再出现这个问题没有解决方法. Python的魅力之一 ...

  8. linux检查是否安装了rzsz,linux安装rzsz(lrzsz)

    lrzsz是一个unix通信套件提供的,X,Y和ZModem文件传输协议,可以用在Windows与linux系统之间的文件传输,体积小速度快,可以与xshell工具配合使用. (1)在线安装 yum ...

  9. python安装步骤图解-Python安装-小白图文教程(精)

    python优点 python非常简单,易学. python虽然是用c语言写的,但是它摈弃了c中非常复杂的指针,简化了python的语法. Python程序无需修改就可以在任何平台上面运行. Pyth ...

最新文章

  1. 牛腩发布没有Internet 信息服务(IIS)管理器解决办法
  2. Android.mk用法详解
  3. 建筑师 第一类斯特林数
  4. [初级]Java命令学习系列(七)——javap
  5. CF245H Queries for Number of Palindromes
  6. Loading动画加载素材模板,UI设计师好帮手
  7. 公司创立之初,人脉、资金等资源不足怎么办?
  8. servlet的四种响应
  9. Windows下配置Apache服务器
  10. C++序列化模拟三 -----酒后日志
  11. dbscan js 实现_DBSCAN在PySpark上的实现
  12. 【2.Delphi语法基础】7.程序异常处理
  13. 5G信令7——Service Request
  14. ANSYS Maxwell 2D永磁体建模
  15. cruzer php sandisk 闪迪u盘量产工具_闪迪u3量产工具下载 SanDisk Cruzer Micro(闪迪u盘量产工具) V1.0 官方免费版(附使用说明) 下载-脚本之家...
  16. JAVA实现AES加密、解密
  17. kaggle之共享单车案例
  18. good website
  19. c语言点阵输出字母,单片机C语言程序设计:8X8LED 点阵显示数字
  20. 一个球绳命最后的高度哈哈

热门文章

  1. oracle用户权限管理
  2. sql2008 评估期过期解决办法
  3. python error: no module named pylab的解决
  4. SQL书写规则30例
  5. spring单元测试无法注入bean_Spring容器启动@Value属性无法注入?
  6. python集合排序_numpy排序与集合运算用法示例
  7. OpenGL与EGL最简流程(十八)
  8. Linux头文件引用小技巧
  9. Android连接网络立即同步时区
  10. android7.x版本编译framework.jar无效解决