python实现对本机和批量远程服务器的cpu负载的获取,怎么实现

python实现对本机和批量远程服务器的cpu负载的获取,怎么实现,第1张

The module - psutil is what you want.

easy_install psutil

or

pip install psutil

-

1、在远程server里搭建一个http服务,并支持某种服务端语言(如.net或php之类)

2、用服务端语言获取到服务器的磁盘信息,把结果输出

3、在本地用JS写一段AJAX脚本,远程请求服务端写好的程序,得到结果,并展示给用户

<html>

<head>

<title>提取硬盘序列号</title>

<script>

function disk() {//硬盘序列号 信息

var locator = new ActiveXObject ("WbemScripting.SWbemLocator")

var service = locator.ConnectServer(".")

var properties = service.ExecQuery("SELECT * FROM Win32_DiskDrive")

var e = new Enumerator (properties)

document.write("<table border=1>")

for (!e.atEnd()e.moveNext ())

{

var p = e.item ()

document.write("<tr>")

document.write("<td>" + p.signature + "</td>")

document.write("</tr>")

}

document.write("</table>")

}

</script>

</head>

<body>

<input type="button" value="硬盘序列号" onclick="disk()">

</body>

</html>

在这上找的代码:

对于写过ASP或.net 的人来说,通过asp或.net 语言来获得客户端的硬件信息是很熟悉的.但如何通过javascript这种客户端脚本来获得客户端的信息呢?请看以下实例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>

<title>javascript获得客户端硬件信息-www.web2bar.cn/</title>

<meta name="GENERATOR" content="Microsoft Visual Studio .NET

7.1">

<meta name="vs_targetSchema"

content="http://schemas.microsoft.com/intellisense/ie5">

<script id=clientEventHandlersJS language=javascript>

<!--

function Button2_onclick() {//CPU 信息

var locator = new ActiveXObject ("WbemScripting.SWbemLocator")

var service = locator.ConnectServer(".")

var properties = service.ExecQuery("SELECT * FROM Win32_Processor")

var e = new Enumerator (properties)

document.write("<table border=1>")

for (!e.atEnd()e.moveNext ())

{

var p = e.item ()

document.write("<tr>")

document.write("<td>" + p.Caption + "</td>")

document.write("<td>" + p.DeviceID + "</td>")

document.write("<td>" + p.Name + "</td>")

document.write("<td>" + p.CpuStatus + "</td>")

document.write("<td>" + p.Availability + "</td>")

document.write("<td>" + p.Level + "</td>")

document.write("<td>" + p.ProcessorID + "</td>")

document.write("<td>" + p.SystemName + "</td>")

document.write("<td>" + p.ProcessorType + "</td>")

document.write("</tr>")

}

document.write("</table>")

}

function Button1_onclick() {//软盘信息

var locator = new ActiveXObject ("WbemScripting.SWbemLocator")

var service = locator.ConnectServer(".")

var properties = service.ExecQuery("SELECT * FROM Win32_FloppyDrive")

var e = new Enumerator (properties)

document.write("<table border=1>")

for (!e.atEnd()e.moveNext ())

{

var p = e.item ()

document.write("<tr>")

document.write("<td>" + p.Description + "</td>")

document.write("<td>" + p.DeviceID + "</td>")

document.write("<td>" + p.Status + "</td>")

document.write("<td>" + p.Manufacuturer + "</td>")

document.write("</tr>")

}

document.write("</table>")

}

function Button1_onclick() {//CD-ROM 信息

var locator = new ActiveXObject ("WbemScripting.SWbemLocator")

var service = locator.ConnectServer(".")

var properties = service.ExecQuery("SELECT * FROM Win32_CDROMDrive")

var e = new Enumerator (properties)

document.write("<table border=1>")

for (!e.atEnd()e.moveNext ())

{

var p = e.item ()

document.write("<tr>")

document.write("<td>" + p.Caption + "</td>")

document.write("<td>" + p.Description + "</td>")

document.write("<td>" + p.Drive + "</td>")

document.write("<td>" + p.Status + "</td>")

document.write("<td>" + p.MediaLoaded + "</td>")

document.write("</tr>")

}

document.write("</table>")

}

function Button1_onclick() {//键盘信息

var locator = new ActiveXObject ("WbemScripting.SWbemLocator")

var service = locator.ConnectServer(".")

var properties = service.ExecQuery("SELECT * FROM Win32_Keyboard")

var e = new Enumerator (properties)

document.write("<table border=1>")

for (!e.atEnd()e.moveNext ())

{

var p = e.item ()

document.write("<tr>")

document.write("<td>" + p.Description + "</td>")

document.write("<td>" + p.Name + "</td>")

document.write("<td>" + p.Status + "</td>")

document.write("</tr>")

}

document.write("</table>")

}

function Button1_onclick() {//主板信息

var locator = new ActiveXObject ("WbemScripting.SWbemLocator")

var service = locator.ConnectServer(".")

var properties = service.ExecQuery("SELECT * FROM Win32_BaseBoard")

var e = new Enumerator (properties)

document.write("<table border=1>")

for (!e.atEnd()e.moveNext ())

{

var p = e.item ()

document.write("<tr>")

document.write("<td>" + p.HostingBoard + "</td>")

document.write("<td>" + p.Manufacturer + "</td>")

document.write("<td>" + p.PoweredOn + "</td>")

document.write("<td>" + p.Product + "</td>")

document.write("<td>" + p.SerialNumber + "</td>")

document.write("<td>" + p.Version + "</td>")

document.write("</tr>")

}

document.write("</table>")

}

//-->

</script>

</head>

<body>

<INPUT id="Button1" type="button" value="Button"

name="Button1" language=javascript onclick="return Button1_onclick()">

</body>

</html>

使用javascript方式获得客户端的信息主要的优点是,不需求服务器资源.不需求刷新网页.直接在客户端执行脚本获得显示.

在这上找到了硬盘序列号的参数:

\'获得硬盘序列号

Dim cmicWmi As New System.Management.ManagementObjectSearcher(\"SELECT * FROM Win32_DiskDrive\")

Dim Uint32 As UInt32

For Each cmicWmiObj As ManagementObject In cmicWmi.Get

Uint32 = cmicWmiObj(\"signature\")

Next

TextBox1.Text = Uint32.ToString

集群架设服务器数量:2台

集群架设方法:(设定:主服务器IP:192.168.0.11 从服务器 192.168.0.12)

第一步:架设主服务器

1、 利用启动器配置好完整的服务端程序 (举例:比如服务器名:测试 服务器IP:192.168.0.11 登陆网关端口 7000 角色网关端口 7100 游戏RUN端口 7200 7300 7400),利用启动器配置好后,那么你的主服务器是一个完整的服务端了

2、 修改配置文件:(修改配置文件的目的是为了让你的从服务器能够跟这台主服务器进行通讯,具备负担的条件)

1>DBServer !addrtable.txt 此文档含义:允许连接DBS管理器的IP列表,一般写上 127.0.0.1 主IP 192.168.0.11 从IP 192.168.0.12 三个IP独立成行

2>DBServer !serverinfo.txt 此文档含义:主服务器 从服务器 的网关IP以及端口,可以设置如下

192.168.0.11 192.168.0.11 7200 192.168.0.11 7300 192.168.0.11 7400

192.168.0.12 192.168.0.12 7200 192.168.0.12 7300 192.168.0.12 7400

3>LogunSrv !addrtable.txt 此文档 实际上是一个角色网关跟登陆网关直接通讯路由标识表 在最后加一个 从服务器的IP跟端口即可

比如:127.0.0.1 127.0.0.1 192.168.0.11:7100 192.168.0.12:7100

4>LogunSrv !serveraddr.txt 允许连接IDDBS 同DBServer !addrtable.txt

主服务器架设完毕 架设完毕后切忌不要再用启动器配置了 否则要从来再配置一遍,就麻烦啦。

第二步:架设从服务器

1、 从服务器只需要开 SELATE RUNGATE

1>SELATE 开启的目的是 登陆7000之后 可以选择到这台从服务器的网关 记得配置文件网关地址写本服务器IP地址 192.168.0.12 服务器地址写 192.168.0.11

2>RUNGATE 手动配置3个 7200 7300 7400 服务器地址写上 主服务器地址 192.168.0.11

架设完毕主服务器利用启动所有程序 从服务器手动开 角色网关 和三个游戏网关

在主服务器的M2上面能看到 从服务器的IP过来就说明通讯成功,如果看不到,说明自己哪里设置错了,仔细检查下!原理很简单的,自己实践吧!


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/683443.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-30
下一篇2023-07-30

发表评论

登录后才能评论

评论列表(0条)

    保存