按下面需求的使用python写个脚本1 每5分钟对X园区设备X_T1_ACC2的关键运行状态进行监控 电源状态 风扇状态 LACP状态 CPU、内存利用率 OSPF邻居状态2 与交换机之间应建立较为安全的管理3 对状态监控结果进行分析并在风扇出现异常状态时两个风扇状态全部为非normal给出明确提示:All fans are faulty!4 脚本所执行的监控相关命令不直接在代
、os、zipfile等模块。
以下是一个基本的代码框架,需要根据实际需求进行修改和完善:
import paramiko
import ncclient
import time
import datetime
import os
import zipfile
class DeviceMonitor:
def __init__(self, ip, username, password, commands_file):
self.ip = ip
self.username = username
self.password = password
self.commands_file = commands_file
self.client = None
def connect(self):
self.client = paramiko.SSHClient()
self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self.client.connect(self.ip, username=self.username, password=self.password)
def disconnect(self):
if self.client:
self.client.close()
def execute_command(self, command):
stdin, stdout, stderr = self.client.exec_command(command)
result = stdout.read().decode('utf-8')
return result
def monitor(self):
# 读取命令文件中的命令并执行
with open(self.commands_file, 'r') as f:
commands = f.readlines()
for command in commands:
result = self.execute_command(command)
# 在此处进行状态分析并给出提示
def backup_config(self):
# 保存配置文件并备份到本地
now = datetime.datetime.now()
filename = '{0}_{1}.zip'.format(now.strftime('%Y_%m_%d'), self.ip)
with zipfile.ZipFile(filename, 'w') as zip:
# 使用ncclient获取配置文件并写入zip文件中
if __name__ == '__main__':
device = DeviceMonitor('192.168.1.1', 'username', 'password', 'commands.txt')
device.connect()
try:
device.monitor()
device.backup_config()
finally:
device.disconnect()
``
原文地址: https://www.cveoy.top/t/topic/fhYu 著作权归作者所有。请勿转载和采集!