服务器ibmc无法加载js文件,华为服务器IBMC批量巡检代码

selenium需要下载Chrome驱动webdriver,具体下载的版本根据自己的谷歌浏览器版本进行下载,然后

将下载好的驱动webdriver放到自己python解释器同级目录中即可,下载地址http://npm.taobao.org/mirrors/chromedriver/

此代码可用于华为服务器批量巡检,前提要在脚本存放的同级目录下建立一个ipList.txt文件存储

服务器管理IP地址格式为每行一个地址(即imbc的管理地址),脚本将会遍历所有的IP地址,这里的账号密码默认为华为

服务器的原始账号密码(即Administrator和Admi@9000),如有需要可自行修改代码。

坑点:服务器登录加载的时候需要等待一段时间,刚开始使用driver.implicitly_wait()函数进

行隐性等待,发现会有获取数据的值为空值的现象,排查发现是因为华为IBMC界面元素的加载跟数据

的加载是不同步的,只能选择强制等待time.sleep()的方法了。

from selenium import webdriver

import math

import datetime

import xlsxwriter

import time

# 规定巡检表

today=str(datetime.date.today())

workbook=xlsxwriter.Workbook('%s华为巡检报告.xlsx'%today)

worksheet=workbook.add_worksheet('华为巡检')

# 巡检项目

title=[

U'IP地址',

U'序列号',

U'型号',

U'BMC版本',

U'BIOS版本',

U'风扇状态',

U'电源状态',

U'磁盘状态',

U'CPU状态',

U'RAID状态',

U'紧急告警数',

U'严重告警数',

U'轻微告警数'

]

#写入标题

worksheet.write_row('A1',title)

#返回分类列表(供下面函数调用)

def listCheck(list_tr,*args):

list=[]

for i in list_tr:

for j in args:

if i.startswith(j):

list.append(i)

return list

#检查分类列表

def okCheck(list):

for i in list:

if i.split(' ')[-7] !='OK':

return 'NO'

break

return 'OK'

#主程序

if __name__ == '__main__':

with open('ipList.txt','r',encoding='utf8') as f:

iplist=f.readlines()

rowNum=2

for ip in iplist:

# 创建webdriver对象

driver=webdriver.Chrome()

#登录华为服务器BMC

driver.get('https://%s/login.html'%ip)

driver.find_element_by_id('ipUserName').send_keys('Administrator')

driver.find_element_by_id('iptPassword').send_keys('Admin@9000')

time.sleep(1)

driver.find_element_by_id('btnLogin').click()

#进入子iframe

driver.switch_to.frame('rightMid')

#IP地址

ipaddr=driver.find_element_by_id('txtBMCIp').text

#序列号

xuliehao=driver.find_element_by_id('txtSequence').text

#型号

xinghao=driver.find_element_by_id('txtProductNameInfo').text

# iBMC地址

ibmc=driver.find_element_by_id('txtBMCFirm').text

#bios固件版本

bios=driver.find_element_by_id('txtBiosFirm').text

# 紧急告警数量

jinji=driver.find_element_by_id('txtCritalAlarms').text

#严重告警

yanzhong=driver.find_element_by_id('txtMajorAlarms').text

#轻微告警

qingwei=driver.find_element_by_id('txtMinorAlarms').text

#返回主Document

driver.switch_to.default_content()

#转到另外一个子iframe

driver.find_element_by_id('menu_SENSOR').click()

time.sleep(3)

driver.switch_to.frame('rightMid')

#获取门限传感器数目

strr=driver.find_element_by_id('tinyPaginationTotalRecords').text

num=int(strr[5:])

#将门限传感器内容写入列表

list_tr=[]

for i in range(math.ceil(num/10)): #遍历传感器页数

for j in driver.find_elements_by_xpath('//*[@id="DataTables_Table_3"]/tbody/tr'):

list_tr.append(j.text)

driver.find_element_by_css_selector("[class='ti ti-angle-right']").click()

#cpu状态

cpu=okCheck(listCheck(list_tr,'CPU'))

#风扇状态

fan=okCheck(listCheck(list_tr,'FAN'))

#raid状态

raid=okCheck(listCheck(list_tr,'RAID','Raid'))

#电源状态

power=okCheck(listCheck(list_tr,'Power'))

#磁盘状态

disk=okCheck(listCheck(list_tr,'Disk'))

#数据列表

data=[

ipaddr,

xuliehao,

xinghao,

ibmc,

bios,

fan,

power,

disk,

cpu,

raid,

jinji,

yanzhong,

qingwei

]

#拼接行号

row='A'+str(rowNum)

#将内容写进行号指定的行

worksheet.write_row(row,data)

rowNum+=1

#删除页面缓存

driver.delete_all_cookies()

driver.close()

f.close()

workbook.close()使用plupload绕过服务器,批量上传图片到又拍云

本文最初发布于我的个人博客:Jerry的乐园 综述 论坛或者贴吧经常会需要分享很多图片,上传图片比较差的做法是上传到中央服务器上,中央服务器再转发给静态图片服务器.而这篇文章讲介绍如何使用pluplo ...

在MVC中实现和网站不同服务器的批量文件下载以及NPOI下载数据到Excel的简单学习

嘿嘿,我来啦,最近忙啦几天,使用MVC把应该实现的一些功能实现了,说起来做项目,实属感觉蛮好的,即可以学习新的东西,又可以增加自己之前知道的知识的巩固,不得不说是双丰收啊,其实这周来就开始面对下载在挣 ...

ssh key 免密码登陆服务器,批量分发管理以及挂载远程目录的sshfs

ssh key 免密码登陆服务器,批量分发管理以及挂载远程目录的sshfs 第一部分:使用ssh key 实现服务器间的免密码交互登陆 步骤1: 安装openssh-clients [root@001 ...

艾伦 Visual Studio 批量自动化代码操作工具-VS插件发布

艾伦 Visual Studio 批量自动化代码操作工具 以下简称--艾伦工具箱. 艾伦工具箱是一个多文件批量处理插件,目的是为了广大开发者提高开发效率,减少项目代码规范化审计,缩短开发者的项目开发周 ...

解放双手:如何在本地调试远程服务器上的Node代码

写在前面 谈到node断点调试,目前主要有三种方式,通过node内置调试工具.通过IDE(如vscode).通过node-inspector,三者本质上差不多.本文着重点在于介绍 如何在本地通过nod ...

Android JUnit Test——批量运行测试代码

转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ Android测试三要素 写Android测试用例有三要素,一是我们用的“安卓模拟器device” ...

【转】- 使用T4模板批量生成代码

前言 之前在 “使用T4模板生成代码 - 初探” 文章简单的使用了T4模板的生成功能,但对于一个模板生成多个实例文件,如何实现这个方式呢?无意发现一个解决方案 “MultipleOutputHelpe ...

如何使用CodeSmith批量生成代码(原创系列教程)

在上一篇我们已经用PowerDesigner创建好了需要的测试数据库,下面就可以开始用它完成批量代码生成的工作啦. 下面我会一步步的解释如何用CodeSmith实现预期的结果的,事先声明一下,在此只做 ...

随机推荐

php大力力 [014节] 八杆子打不着的非技术文章,哈哈

今天似乎是个值得纪念的日子 一个创业失败者的忠告:请不要再参加创业活动 PHP mysql_connect() 函数 mysql默认用户 随意发几个链接,没任何意义

PL/SQL Developer 连接Oracle数据库详细配置方法

PL/SQL Developer 连接Oracle数据库详细配置方法 近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server).本文现对监听配置作一简单介绍,给出 ...

VisualSVN Server安装过程

 运行VisualSVN-Server-2.7.3.msi程序, 如下图 点击Next, 下一步 选中 I accept选项, 点击Next, 下一步 选择默认配置, 服务和控制台组件方式, 点击 ...

Linux----------mysql基础

目录 一.数据库介绍 1.1 数据库的优点 1.2 数据库的基本功能 1.3数据库的类型 1.4 关系型数据的组成 1.5 关系型数据库的常用组件 1.6 SQL语句 1.7 mysql命令使用 1. ...

Glide图片加载框架小bug

如上一段加载图片的代码,本身是没问题的,后来测试发现有情况不显示url对应的图片,而一直显示加载超时的图片 修改如下: 将with()方法的上下文context改为图片的imageView.getCo ...

springMVC集成CXF后调用已知的wsdl接口

本文转载自:https://www.cnblogs.com/xiaochangwei/p/5400303.html 本篇文章将讲解SpringMVC+CXF环境下,怎么调用其他系统通过webServi ...

35-THREE.JS 多面体

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值