需要远程简单地获得每台服务器的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使用情况相关推荐

  1. 服务器管理器远程管理如何打开,如何实现服务器远程管理图文详解

    如何实现服务器远程管理图文详解 作者: 田耘日期: 2011-02-25文章属性:内容导航 服务器在使用中,多数情况下都是成批的部署于机房内,由于数量众多,要对它们进行管理,传统的单机管理方式显然不太 ...

  2. 多用户同时远程登录连接到一台服务器

    远程登录较简单 此方法用最新的RamDesk软件会报错:Reboot and select proper boot device or Insert Boot Media in selected Bo ...

  3. 基于JAVA服务器监控系统设计,远程数字图像监控系统中web服务器的设计与实现...

    摘要: 数字图像监控系统在目前处于小规模发展阶段,系统的核心是监控服务器.在一些小规模的应用中,监控服务器同时还充当着监控终端的角色.但是,大部分监控系统都没有考虑用户权限.安全性.收费模式等方面的问 ...

  4. 云服务器磁盘空间被异常占满,导致服务器无法正常使用。

    最近一段时间,服务器出现了磁盘被占满问题,导致服务器无法正常运行. 通过宝塔面板可以看到,服务器磁盘空间已经被占满了. 解决方法 通过请教相关技术工程师,解决方案如下: (1)执行命令,找到服务器哪些 ...

  5. 服务器安全狗远程桌面无法连接,如何使用服务器安全狗远程桌面保护

    您可能感兴趣的话题: 服务器安全狗 核心提示:服务器安全狗远程桌面守护功能为用户服务器提供实时.主动的远程桌面登录保护,远程桌面守护针对多种类型的主流远程控制软件,包括操作系统自带的远程桌面登录工具. ...

  6. nginx负载均衡两台服务器文件,Nginx之负载均衡 :两台服务器均衡(填坑)

    第一步,两台服务器都要安装好Nginx和Tomcat,我这边的安装的是Nginx 1.16.1 Tomcat9: 第二步,安装完成之后,选择你要做均衡的那台服务器,,打开其Nginx 配置文件,在se ...

  7. 服务器批量管理,怎样同时管理很多台服务器

    本人最近入职了一家石家庄视频直播的网络公司,接手管理了300多台服务器,因工作需要每天多次频繁连接到多台服务器,但是手动一个一个连接非常的耗时间,有什么方法可以可以快速批量远程连接服务器呢? 最近发现 ...

  8. kvm最多能管几台服务器,如何实现多人分组管理多台服务器

    客户需求 指挥中心.调度中心均会出现多人交叉管理多台服务器或电脑主机的情况.且因为指挥中心或调度中心的缘故,服务器或电脑主机设备均会摆放至服务器机房内.而对于此问题的解决方案,目前在KVM行业内并未给 ...

  9. 服务器中有两个R文件夹,一台服务器中配置多个git sshkey

    需求背景:GitHub上有两个项目,需要拉取到同一台服务器,并且都需要通过ssh的方式拉取 假设两个项目分别叫: proj1 和 proj2 一.分别生成 ssh key # 先生成 proj1 的 ...

最新文章

  1. asp实现301跳转的方法
  2. 常纪文:智慧城市有助于实现低碳绿色发展
  3. CPU和软件模拟异常的执行流程
  4. 提高博客访问量14种方法
  5. 在将计算机技术应用于会计工作的初期,所开发的会计核算软件主要用于,电算化考前试七.doc...
  6. php+数组存放文件名_php将数组存储为文本文件的三种方法
  7. LeetCode —— 980. 不同路径 III(Python)
  8. 文字组合生成器_万字长文神器,原来只是固定数据库排列组合而成
  9. 同事经常蹭我的车,我该怎么拒绝?
  10. 【mysql乱码】解决php中向mysql插入中文数据乱码的问题
  11. 设某一机器由n个部件组成_组成原理
  12. css实现圆球旋像水波波动_66 个超有用的CSS 特效!
  13. RapidMiner 数值调整
  14. 【SSM】SSM框架介绍
  15. 华硕主板装系统蓝屏_华硕台式电脑蓝屏怎么重装系统 华硕台式电脑蓝屏重装系统步骤...
  16. Java基础系列-《流程控制--循环结构》
  17. built a JNCIS LAB系列:Chapter 1 Communities v1.0
  18. 一、系统间的通信技术
  19. 组策略应用:软件分配及软件发布
  20. 无线传感器网络复习(武昌首义学院)

热门文章

  1. python截取视频图像_python工具-将视频按帧截取图片(附代码)
  2. 实现点击到底部、顶部、指定div功能
  3. 垂直margin合并问题
  4. Python面向对象编程(二)
  5. 【Wicket是个什么鬼】wicket框架URL路由规则
  6. JDK、TOMCAT、Ant环境变量设置
  7. [Hadoop] 启动HDFS缺少服务
  8. DNS区域传送、子域授权
  9. vue2.0 #$emit,$on的使用
  10. 2017年值得回首的那些事(文末有新春好礼相送)