2024-2025年度广东省职业院校技能大赛网络系统管理赛项样题-自动化运维部分解析
2024-2025年度广东省职业院校技能大赛网络系统管理赛项(GZ073)样题自动化运维部分解析
每套题的第五部分,也就是Python自动化运维那块应该怎么做。首先,我需要仔细看看题目内容。看起来每个第五部分都有不同的任务,但基本上都是用Python来自动化一些网络设备的操作,比如登录设备获取信息,生成图表,保存结果等。
首先,我要确定每个任务的具体要求。例如,第一套题的第五部分有三个任务:1)用Python远程登录R1获取CPU信息并保存变量;2)生成柱状图显示5秒、1分钟和5分钟的CPU利用率;3)在图片中添加“XX CPU Using Rate Information”的文本,XX是组号。
第一步是写Python代码登录网络设备。这可能需要使用像Paramiko这样的库来SSH连接设备。然后执行命令获取CPU信息。比如,在锐捷设备上,可能用show cpu命令。接着需要解析输出,提取所需的数据,保存到变量中。
第二步是生成柱状图。可以用Matplotlib库来画图。需要把获取到的CPU利用率数据作为数据源,设置X轴为时间间隔(5秒、1分钟、5分钟),Y轴为利用率百分比。然后添加标题和标签,最后保存图片。
第三步是在图片中添加特定文本。这可以在Matplotlib中用text函数或者直接在图表标题里包含组号。
通用步骤
-
SSH连接设备:使用
paramiko
库建立SSH连接,执行命令并获取输出。 -
数据解析:从命令输出中提取所需信息(如CPU、内存、MAC表等)。
-
结果处理:根据题目要求生成图表(
matplotlib
)或保存文件。 -
添加标识文本:在图表或文件中加入组号(如“XX CPU Using Rate Information”)。
示例代码模板
1. 远程登录设备并获取信息(以CPU为例)
import paramiko
import matplotlib.pyplot as plt
# SSH连接配置
host = "R1"
port = 22
username = "admin"
password = "Test@123456" # 根据题目要求修改
# 建立SSH连接
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, port, username, password)
# 执行命令获取CPU信息
stdin, stdout, stderr = ssh.exec_command("show cpu")
output = stdout.read().decode()
# 解析CPU利用率(示例,需根据实际输出调整)
cpu_data = {
"5s": 20.5, # 从output中提取实际值
"1m": 35.2,
"5m": 15.8
}
# 关闭连接
ssh.close()
2. 生成柱状图(CPU/内存)
# 生成柱状图
labels = list(cpu_data.keys())
values = list(cpu_data.values())
plt.bar(labels, values, color=['#1f77b4', '#ff7f0e', '#2ca02c'])
plt.title("XX CPU Using Rate Information") # XX替换为组号
plt.ylabel("Utilization (%)")
plt.ylim(0, 100)
# 保存图片
plt.savefig("cpu_usage.png")
plt.show()
3. 设备巡检并保存结果
# 执行巡检命令
commands = [
"show version",
"show clock",
"show cpu",
"show memory",
"show interfaces status"
]
with open("result.txt", "w") as f:
f.write("XX Device Inspect\n") # XX替换为组号
for cmd in commands:
stdin, stdout, stderr = ssh.exec_command(cmd)
f.write(f"=== {cmd} ===\n")
f.write(stdout.read().decode() + "\n\n")
4. 配置SNMP并保存结果
# 配置SNMP(需设备支持命令行配置)
commands = [
"configure terminal",
"snmp-server community Test RW",
"snmp-server community public RO",
"snmp-server host 172.16.0.254 version 2c Test",
"exit"
]
# 执行配置并保存结果
with open("result.txt", "w") as f:
f.write("XX SNMP Status\n") # XX替换为组号
for cmd in commands:
stdin, stdout, stderr = ssh.exec_command(cmd)
# 验证配置
stdin, stdout, stderr = ssh.exec_command("show snmp")
f.write(stdout.read().decode())
更多推荐
所有评论(0)