linux检查python安装情况,使用Python检测Linux服务器连接状态
在对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服务器连接状态相关推荐
- python安装pandas模块-python安装numpy和pandas的方法步骤
最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了.首要条件,python版本必须 ...
- linux服务器怎么连接无线网卡,在linux上怎么安装无线网卡驱动?_网站服务器运行维护,linux,无线网卡...
怎么查看linux连接wifi的密码?_网站服务器运行维护 查看linux连接wifi密码的方法:首先打开终端输入代码[cd /etc/NetworkManager/system-connection ...
- python安装numpy-如何为python安装numpy和scipy?
我厌倦了尝试为phyton 2.7.5安装numpy和scipy,我需要这个版本的python,因为我的最终目标是安装类(http://class-code.net/)和montepython(htt ...
- python安装pip_解决Python安装下载及Python环境的配置(pip,flake8,yapf)
一.软件准备: 1.下载好Python和VScode VScode: https://code.visualstudio.com/ Python: https://www.python.org/ftp ...
- python安装教程-最新Python安装图文教程[很详细]
如今,Python已经成为一种非常主流的编程语言了,很多小伙伴都开学习python,但是对于刚刚接触python的纯小白来说,不太会安装,下面我们就介绍介绍python最新安版本3.7.4的安装教程. ...
- python安装步骤图解-Python安装与卸载流程详细步骤(图解)
Python安装流程: 一.下载 在网上(输入网址https://www.python.org/downloads/)下载Windows最新的python程序(我电脑为64位) 二.安装 根据自己的电 ...
- python安装numpy模块-python的numpy模块安装不成功简单解决方法总结
为了画个图,被numpy这个模块的安装真的折腾疯了!!!一直装不上,花了几个小时,看了网上的很多教程.方法发现总结得不是很全,这里总结一下,防止大家再出现这个问题没有解决方法. Python的魅力之一 ...
- linux检查是否安装了rzsz,linux安装rzsz(lrzsz)
lrzsz是一个unix通信套件提供的,X,Y和ZModem文件传输协议,可以用在Windows与linux系统之间的文件传输,体积小速度快,可以与xshell工具配合使用. (1)在线安装 yum ...
- python安装步骤图解-Python安装-小白图文教程(精)
python优点 python非常简单,易学. python虽然是用c语言写的,但是它摈弃了c中非常复杂的指针,简化了python的语法. Python程序无需修改就可以在任何平台上面运行. Pyth ...
最新文章
- 牛腩发布没有Internet 信息服务(IIS)管理器解决办法
- Android.mk用法详解
- 建筑师 第一类斯特林数
- [初级]Java命令学习系列(七)——javap
- CF245H Queries for Number of Palindromes
- Loading动画加载素材模板,UI设计师好帮手
- 公司创立之初,人脉、资金等资源不足怎么办?
- servlet的四种响应
- Windows下配置Apache服务器
- C++序列化模拟三 -----酒后日志
- dbscan js 实现_DBSCAN在PySpark上的实现
- 【2.Delphi语法基础】7.程序异常处理
- 5G信令7——Service Request
- ANSYS Maxwell 2D永磁体建模
- cruzer php sandisk 闪迪u盘量产工具_闪迪u3量产工具下载 SanDisk Cruzer Micro(闪迪u盘量产工具) V1.0 官方免费版(附使用说明) 下载-脚本之家...
- JAVA实现AES加密、解密
- kaggle之共享单车案例
- good website
- c语言点阵输出字母,单片机C语言程序设计:8X8LED 点阵显示数字
- 一个球绳命最后的高度哈哈