服务器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 多面体
服务器ibmc无法加载js文件,华为服务器IBMC批量巡检代码相关推荐
- 服务器ibmc无法加载js文件,weUI应用之JS常用信息提示弹层的封装
weUI应用,自己用JS封装了几个常用的信息提示的弹层 测试页面的代码在后面有贴出 几个弹层如下图 HTML页面代码: weUI-test 测试 $(function(){ // //提示弹层,取消关 ...
- 服务器ibmc无法加载js文件,引入网络js
引入网络js 内容精选 换一换 安装完操作系统后,需在当前iBMC远程管理界面中配置网卡IP地址才能远程连接服务器,配置方法如下.vi /etc/sysconfig/network-scripts/i ...
- 异步加载js文件的方法总结
方法一,jQuery.getScript HTML 代码: 代码如下 复制代码 <button id="go">Run</button> <div c ...
- php动态页面加载慢,通过动态加载JS文件提升网站访问速度
相对与HTML,CSS,javascript是最影响浏览器性能的,因为浏览器在遇到<script>标签时,必须等待js代码下载和执行完毕后再执行后面的内容,因此当页面中js文件过多时,网站 ...
- js如何动态的加载js文件
在这个地方我说的动态的加载js文件是通过调用函数来加载js文件,我们在这个地方通过一个简单的小例子来实现 首先创建3个文件分别为:test1.html,test1.js,demo.js test1.j ...
- 网页性能优化之异步加载js文件
一个网页的有很多地方可以进行性能优化,比较常见的一种方式就是异步加载js脚本文件.在谈异步加载之前,先来看看浏览器加载js文件的原理. 浏览器加载 JavaScript 脚本,主要通过<scri ...
- ExtJS4.x动态加载js文件
动态加载js文件是ext4.x的一个新特性,可以有效的减少浏览器的压力,提高渲染速度.如动态加载自定义组件 1.在js/extjs/ux目录下,建立自定义组件的js文件. 2.编写MyWindow.j ...
- javascript:重新加载js文件
//重新加载js文件 function loadJs(file) { var head = $("head").remove("s ...
- JavaScript动态加载js文件
/********************************************************************** JavaScript动态加载js文件* 说明:* 之前没 ...
最新文章
- 图像与数据类型的对应,以及如何显示
- 批量修改数据映射_Docker 数据卷操作「Docker 系列-6」
- 软件工程——求二维数组所有子矩阵的和的最大值
- 443 k8s配置开启nginx_SSL证书不会安装配置?手把手教会你,3步搞定
- 【软件构造】第二章 软件构建的过程和工具(2)
- 实验三 图的操作与实现
- MCU提高ADC采样精度的几种方案
- java实验册_Java实验报告册Java实验报告册.doc
- 自制 移动端 纯原生 Slider滑动插件
- (88)FPGA写文件激励(fwrite)
- css3 下拉缩放显示定位导航
- JS 用window.open()函数详解
- java的安装包下载 百度云_Java开发相关安装包网盘下载链接分享
- Vue插件-json编辑器
- 3D打印笔 画出模型
- OSI七层模型与TCP/IP四层与五层模型详解
- 直系同源基因分析(orthofinder方法)
- c语言1000万位圆周率,如何设计C语言程序输出圆周率小数点后的1000位?请大侠出手啊。...
- android 常用机型尺寸_安卓手机屏幕多大合适?6.4英寸是“黄金尺寸”吗?
- 【安信可NB-IoT模组EC系列AT指令应用笔记④】将设备位置接入阿里云地图,实现空间数据可视化
热门文章
- ESXi 直通网卡重启后依然提示“已启用/需要重新引导”的解决方法
- 《程序员的自我修养》第4章---静态链接
- 熵、信息增益、信息增益率
- 信息熵、信息增益、信息增益比
- 班级页面设计——【1-登陆注册页面】
- Linux驱动——mmc host controller(九)
- mysql 1118_mysql 错误代码:1118解决方法详解
- TeamCity的安装(docker) 构建 和 部署 (1)
- Java“长征”路起航
- 利用c语言编辑--钟表模拟程序(表针形式)