php如何知道服务器剩余空间,远程简单地获得每台服务器的cpu与memory使用情况
需要远程简单地获得每台服务器的cpu与memory使用情况,用python写了一个脚本,发布一个http端口,当浏览器连上时,以json格式提供。
用curl连接时输出:
#curl localhost:9999
{"cpu": 10, "mem": 50}
代码如下:
import json
import os
import shutil
import subprocess
import sys
import time
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
from io import BytesIO
from SocketServer import ThreadingMixIn
from threading import Thread
cpu_mem_info={'cpu':0,'mem':0}
def read_cpu_usage():
with open('/proc/stat','r') as f:
line = f.readline()
fields = line.split()
total = long(fields[1])+long(fields[2])+long(fields[3])+long(fields[4])+long(fields[5])+long(fields[6])+long(fields[7])
used = long(fields[1])+long(fields[2])+long(fields[3])
print(used,total)
return (used,total)
def cpu_monitor():
global cpu_mem_info
while True:
(old_used,old_total) = read_cpu_usage()
time.sleep(3)
(new_used,new_total) = read_cpu_usage()
usage = (new_used-old_used)*100/(new_total-old_total)
cpu_mem_info['cpu'] = usage
print("cpu_monitor:{0}({1})".format(usage,time.asctime()))
def read_mem_usage():
with open('/proc/meminfo','r') as f:
line = f.readline()
fields = line.split()
total = long(fields[1])
line = f.readline()
fields = line.split()
used = long(fields[1])
return used*100/total
def mem_monitor():
global cpu_mem_info
while True:
usage = read_mem_usage()
cpu_mem_info['mem'] = usage
print("mem_monitor:{0}({1}".format(usage,time.asctime()))
time.sleep(3)
class CpuMemServerHandler(BaseHTTPRequestHandler):
global cpu_mem_info
def do_GET(self):
self.send_head()
f = BytesIO(json.dumps(cpu_mem_info).encode())
f.seek(0)
shutil.copyfileobj(f,self.wfile)
def send_head(self):
self.send_response(200)
self.send_header("Content-type",'text/html')
self.end_headers()
class CpuMemServer(ThreadingMixIn,HTTPServer):
pass
if __name__ == '__main__':
cpu_thread = Thread(target=cpu_monitor,args=())
cpu_thread.setDaemon(True)
cpu_thread.start()
mem_thread = Thread(target=mem_monitor,args=())
mem_thread.setDaemon(True)
mem_thread.start()
server = CpuMemServer(('',9999),CpuMemServerHandler)
server.serve_forever()
https模式?
####.....
server = CpuMemServer(('',9999),CpuMemServerHandler)
server.socket = ssl.wrap_socket(server.socket,keyfile="mykey.key",certfile="mycert.crt",server_side=True)
server.serve_forever()
php如何知道服务器剩余空间,远程简单地获得每台服务器的cpu与memory使用情况相关推荐
- 服务器管理器远程管理如何打开,如何实现服务器远程管理图文详解
如何实现服务器远程管理图文详解 作者: 田耘日期: 2011-02-25文章属性:内容导航 服务器在使用中,多数情况下都是成批的部署于机房内,由于数量众多,要对它们进行管理,传统的单机管理方式显然不太 ...
- 多用户同时远程登录连接到一台服务器
远程登录较简单 此方法用最新的RamDesk软件会报错:Reboot and select proper boot device or Insert Boot Media in selected Bo ...
- 基于JAVA服务器监控系统设计,远程数字图像监控系统中web服务器的设计与实现...
摘要: 数字图像监控系统在目前处于小规模发展阶段,系统的核心是监控服务器.在一些小规模的应用中,监控服务器同时还充当着监控终端的角色.但是,大部分监控系统都没有考虑用户权限.安全性.收费模式等方面的问 ...
- 云服务器磁盘空间被异常占满,导致服务器无法正常使用。
最近一段时间,服务器出现了磁盘被占满问题,导致服务器无法正常运行. 通过宝塔面板可以看到,服务器磁盘空间已经被占满了. 解决方法 通过请教相关技术工程师,解决方案如下: (1)执行命令,找到服务器哪些 ...
- 服务器安全狗远程桌面无法连接,如何使用服务器安全狗远程桌面保护
您可能感兴趣的话题: 服务器安全狗 核心提示:服务器安全狗远程桌面守护功能为用户服务器提供实时.主动的远程桌面登录保护,远程桌面守护针对多种类型的主流远程控制软件,包括操作系统自带的远程桌面登录工具. ...
- nginx负载均衡两台服务器文件,Nginx之负载均衡 :两台服务器均衡(填坑)
第一步,两台服务器都要安装好Nginx和Tomcat,我这边的安装的是Nginx 1.16.1 Tomcat9: 第二步,安装完成之后,选择你要做均衡的那台服务器,,打开其Nginx 配置文件,在se ...
- 服务器批量管理,怎样同时管理很多台服务器
本人最近入职了一家石家庄视频直播的网络公司,接手管理了300多台服务器,因工作需要每天多次频繁连接到多台服务器,但是手动一个一个连接非常的耗时间,有什么方法可以可以快速批量远程连接服务器呢? 最近发现 ...
- kvm最多能管几台服务器,如何实现多人分组管理多台服务器
客户需求 指挥中心.调度中心均会出现多人交叉管理多台服务器或电脑主机的情况.且因为指挥中心或调度中心的缘故,服务器或电脑主机设备均会摆放至服务器机房内.而对于此问题的解决方案,目前在KVM行业内并未给 ...
- 服务器中有两个R文件夹,一台服务器中配置多个git sshkey
需求背景:GitHub上有两个项目,需要拉取到同一台服务器,并且都需要通过ssh的方式拉取 假设两个项目分别叫: proj1 和 proj2 一.分别生成 ssh key # 先生成 proj1 的 ...
最新文章
- asp实现301跳转的方法
- 常纪文:智慧城市有助于实现低碳绿色发展
- CPU和软件模拟异常的执行流程
- 提高博客访问量14种方法
- 在将计算机技术应用于会计工作的初期,所开发的会计核算软件主要用于,电算化考前试七.doc...
- php+数组存放文件名_php将数组存储为文本文件的三种方法
- LeetCode —— 980. 不同路径 III(Python)
- 文字组合生成器_万字长文神器,原来只是固定数据库排列组合而成
- 同事经常蹭我的车,我该怎么拒绝?
- 【mysql乱码】解决php中向mysql插入中文数据乱码的问题
- 设某一机器由n个部件组成_组成原理
- css实现圆球旋像水波波动_66 个超有用的CSS 特效!
- RapidMiner 数值调整
- 【SSM】SSM框架介绍
- 华硕主板装系统蓝屏_华硕台式电脑蓝屏怎么重装系统 华硕台式电脑蓝屏重装系统步骤...
- Java基础系列-《流程控制--循环结构》
- built a JNCIS LAB系列:Chapter 1 Communities v1.0
- 一、系统间的通信技术
- 组策略应用:软件分配及软件发布
- 无线传感器网络复习(武昌首义学院)