当前位置: 首页 > news >正文

网站社区建设课题组网站建设

网站社区建设,课题组网站建设,网站开发 icon,本地安装好的wordpress怎么传到服务器上1.前言 之前有一篇博客介绍如何获取Linux服务器上的资源使用情况《Java 获取服务器资源(内存、负载、磁盘容量)》,这里介绍如何通过C#获取Window系统的资源使用。 2.获取服务器资源 2.1.内存 [DllImport("kernel32.dll")][retu…

1.前言

之前有一篇博客介绍如何获取Linux服务器上的资源使用情况《Java 获取服务器资源(内存、负载、磁盘容量)》,这里介绍如何通过C#获取Window系统的资源使用。

2.获取服务器资源

2.1.内存

[DllImport("kernel32.dll")][return: MarshalAs(UnmanagedType.Bool)]private static extern bool GlobalMemoryStatusEx(ref MEMORY_INFO mi);//定义内存的信息结构[StructLayout(LayoutKind.Sequential)]private struct MEMORY_INFO {public uint DWLength;//当前结构体大小public uint DWMemoryLoad;//当前内存使用率public ulong ullTotalPhys;//总计物理内存大小public ulong ullAvailPhys;//可用物理内存代销public ulong ullTotalPagefiles;//总计交换文件大小public ulong ullAvailPagefiles;//可用交换文件大小public ulong ullTotalVirtual;//总计虚拟内存大小public ulong ullAvailVirtual;//可用虚拟内存大小}private static MEMORY_INFO GetMemoryInfo() {MEMORY_INFO memoryInfo = new MEMORY_INFO();memoryInfo.DWLength = (uint)System.Runtime.InteropServices.Marshal.SizeOf(memoryInfo);GlobalMemoryStatusEx(ref memoryInfo);return memoryInfo;}/// <summary>/// 获取内存信息/// </summary>/// <returns></returns>public static ServerMemory GetSysMemoryInfo(){try{MEMORY_INFO memoryInfo = GetMemoryInfo();ServerMemory serverMemory = new ServerMemory();serverMemory.serverId = serverId;serverMemory.serverName = serverName;serverMemory.memTotal = (uint)(memoryInfo.ullTotalPhys / 1024);serverMemory.memFree = (uint)(memoryInfo.ullTotalPagefiles / 1024);serverMemory.memAvailable = (uint)(memoryInfo.ullAvailPhys / 1024);serverMemory.active = (uint)(memoryInfo.ullAvailPhys/1024);long timestamp = CommonUtil.getNowDateTimestamp();serverMemory.dateTimestamp = timestamp;serverMemory.dateTime = CommonUtil.dateTime2Timestamp(timestamp);return serverMemory;}catch (Exception ex) {Log.Instance.Error("GetSysMemoryInfo:" + ex.Message);return null;}}

因为获取到的资源是以byte为单位,我这里将其转成了KB,所以除以了1024.

ServerMemory实体类

public class ServerMemory{public string serverId { set; get; }public string serverName { set; get; }/// <summary>/// 内存总量/// </summary>public uint memTotal { set; get; }/// <summary>/// 系统保留量/// </summary>public uint memFree { set; get; }/// <summary>/// 应用程序可用量/// </summary>public uint memAvailable { set; get; }/// <summary>/// 可使用量/// </summary>public uint active { set; get; }public string dateTime { set; get; }public long dateTimestamp { set; get; }}

2.2.磁盘

public static ServerDisk GetUsedDisk() {try{List<Dictionary<string, string>> diskInfoList = new List<Dictionary<string, string>>();ManagementClass diskClass = new ManagementClass("Win32_LogicalDisk");ManagementObjectCollection disks = diskClass.GetInstances();foreach (ManagementObject disk in disks){Dictionary<string, string> diskInfoDic = new Dictionary<string, string>();try{// 磁盘名称diskInfoDic["Name"] = disk["Name"].ToString();// 磁盘描述diskInfoDic["Description"] = disk["Description"].ToString();// 磁盘总容量,可用空间,已用空间if (System.Convert.ToInt64(disk["Size"]) > 0){long totalSpace = System.Convert.ToInt64(disk["Size"]) / 1024;long freeSpace = System.Convert.ToInt64(disk["FreeSpace"]) / 1024;long usedSpace = totalSpace - freeSpace;diskInfoDic["totalSpace"] = totalSpace.ToString();diskInfoDic["usedSpace"] = usedSpace.ToString();diskInfoDic["freeSpace"] = freeSpace.ToString();}diskInfoList.Add(diskInfoDic);}catch (Exception ex){Log.Instance.Error("ManagementObject->disk:" + ex.Message);}}if (diskInfoList.Count > 0){ServerDisk serverDisk = new ServerDisk();serverDisk.serverId = serverId;serverDisk.serverName = serverName;Dictionary<string, DiskInfo> diskMap = new Dictionary<string, DiskInfo>();foreach (Dictionary<string, string> dic in diskInfoList){if (dic.ContainsKey("totalSpace") && dic.ContainsKey("usedSpace") && dic.ContainsKey("freeSpace")){DiskInfo diskInfo = new DiskInfo();diskInfo.diskName = dic["Name"];diskInfo.diskSize = double.Parse(dic["totalSpace"]);diskInfo.used = double.Parse(dic["usedSpace"]);diskInfo.avail = double.Parse(dic["freeSpace"]);diskInfo.usageRate = (int)((diskInfo.used / diskInfo.diskSize) * 100);diskMap.Add(diskInfo.diskName, diskInfo);}}serverDisk.diskInfoMap = diskMap;long timestamp = CommonUtil.getNowDateTimestamp();serverDisk.dateTimestamp = timestamp;serverDisk.dateTime = CommonUtil.dateTime2Timestamp(timestamp);return serverDisk;}else{return null;}}catch (Exception ex) {Log.Instance.Error("GetUsedDisk:"+ex.Message);return null;}}

ServerDisk实体类

   public class ServerDisk{public string serverId { set; get; }public string serverName { set; get; }public Dictionary<string,DiskInfo> diskInfoMap { set; get; }public string dateTime { set; get; }public long dateTimestamp { set; get; }}

DiskInfo实体类

    public class DiskInfo{public string diskName { set; get; }public double diskSize { set; get; }public double used { set; get; }public double avail { set; get; }public int usageRate { set; get; }}

2.3.CPU

public static ServerCpu GetUsedCPU() {ManagementClass mc = new ManagementClass("Win32_PerfFormattedData_PerfOs_Processor");ManagementObjectCollection moc = mc.GetInstances();List <string> list = new List <string> ();foreach (ManagementObject mo in moc) {if (mo["Name"].ToString() == "_Total") {list.Add(mo["percentprocessorTime"].ToString());}}int percentage = list.Sum(s => int.Parse(s));ServerCpu serverCpu = new ServerCpu();serverCpu.serverId = serverId;serverCpu.serverName = serverName;serverCpu.percentage = percentage;long timestamp = CommonUtil.getNowDateTimestamp();serverCpu.dateTimestamp = timestamp;serverCpu.dateTime = CommonUtil.dateTime2Timestamp(timestamp);return serverCpu;}

ServerCpu实体类

 public class ServerCpu{public string serverId { set; get; }public string serverName { set; get; }public int percentage { set; get; }public string dateTime { set; get; }public long dateTimestamp { set; get; }}

3.最终效果

最终我想实现对Linux和Windows服务器的监控,类似效果如下:

http://www.yayakq.cn/news/636328/

相关文章:

  • 免费搭建平台网站哈尔滨网站建设索q.479185700
  • 推广app网站外卖网站开发能多少钱
  • 如何做区块链网站wordpress 同城生活
  • 纯文字网站设计网页界面设计怎么做
  • 网站产品推广制作wordpress随机评论头像
  • 如何增加网站外链中国核建平台
  • 网站产品展示代码网站建设电商
  • 家教网站怎么做品牌的宣传及推广
  • 做单页网站容易排名吗wordpress上百人
  • 效果图网站发帖平台如何在网站上做背景图片怎么做
  • 网站服务器的选择有哪几种方式?wordpress 关于我们页面模板
  • 做汽车保养的网站上深圳做公司网站的公司
  • 网站建设与运维预算网站后台信息管理怎么做
  • 国贸网站建设ftp怎么连接网站空间
  • 网站与与云的关系网站漏洞以及找后台入口 等功能.
  • 免费外贸网站源码免费建立自己的网站代码
  • 广州seo网站推广网络公司网站模板
  • 网站怎么做h5支付专业网站开发费用
  • 招聘网站竞品分析怎么做学网站开发要什么基础
  • 网站备案知识郑中设计事务所
  • 萧山建设局网站首页谷歌怎么做网站推广
  • 北京建设网站深圳专业建网站公司
  • 如何增强网站的安全性湖南长沙旅游景点
  • 免x网站广州网站案例展示
  • seminar2018年企业网站优化应该怎么做
  • 网站建设公司多少钱网站必须备案吗
  • 谁告诉你j2ee是做网站的wordpress 多店铺
  • 格尔木有做网站的吗怎么套用网站模板
  • 电子商务网站策划ppt宁波工商注册咨询电话
  • 产品设计品牌有哪些沈阳企业网站seo公司