public static string HeartBeatCmd()
        {
            //if (!RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
            //    return "not support for current os";
            LinuxServerInfo info    = new LinuxServerInfo();
            StringBuilder   builder = new StringBuilder();

            if (!RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
            {
                return($"{CommandTag.HeartBeat.GetValue()}|0|End");
            }
            //测试
            //builder.AppendFormat("|{0}", "CentOS Linux release 7.6.1810");
            //builder.AppendFormat("|{0}", "9天 7小时 09分钟");
            //builder.AppendFormat("|{0}", "1.13,1.33,1.55");
            //builder.AppendFormat("|{0}", "10");
            //builder.AppendFormat("|{0}", "3.1");
            //builder.AppendFormat("|{0}", "1");
            //builder.AppendFormat("|{0}", "7686788,12555555");
            //builder.AppendFormat("|End");
            builder.AppendFormat("{0}|{1}", CommandTag.HeartBeat.GetValue(), 1);
            builder.AppendFormat("|{0}", info.OSName);
            builder.AppendFormat("|{0}", info.RunTime);
            builder.AppendFormat("|{0}", info.LoadAverages);
            builder.AppendFormat("|{0}", info.Cpu.CpuUsage);
            builder.AppendFormat("|{0}", info.Mem?.MemUsage);
            builder.AppendFormat("|{0}", info.Disk?.UseUsage);
            builder.AppendFormat("|{0},{1}", info.IO?.ReadBytes, info.IO?.WriteBytes);
            builder.AppendFormat("|End");
            return(builder.ToString());
        }
Exemple #2
0
        //you can’t get to run on Windows
        static void Main(string[] args)
        {
            //string text = File.ReadAllText("text.txt");

            //redirect:true 获取服务器命令执行结果
            var ls = "ls".LinuxBash().Output;

            //redirect:false 将命令执行结果重定向输出到服务器
            ls = "ls".LinuxBash(false).Output;

            //服务器状态对象
            LinuxServerInfo server = new LinuxServerInfo();

            //系统信息
            var OSName = server.OSName;

            $"echo {OSName}".LinuxBash(false);

            //运行时长
            var RunTime = server.RunTime;

            $"echo {RunTime}".LinuxBash(false);

            //系统负载
            var LoadAverages = server.LoadAverages;

            $"echo {LoadAverages}".LinuxBash(false);

            //CPU状态: cpu描述,cpu核心数,cpu使用率
            var cpuInfo = server.Cpu;

            $"echo {cpuInfo.SerializeJSON().Replace('(',' ').Replace(')',' ')}".LinuxBash(false);

            //内存状态:内存总容量,实际可用容量,已使用的容量,缓存化的容量,系统缓冲容量
            var Mem = server.Mem;

            $"echo {Mem.SerializeJSON()}".LinuxBash(false);

            //磁盘状态:磁盘总容量,已用容量,可用容量,已用百分比
            var Disk = server.Disk;

            $"echo {Disk.SerializeJSON()}".LinuxBash(false);

            //IO读写状态:读请求数量,写请求数量,读字节数,写字节数
            var IO = server.IO;

            $"echo {IO.SerializeJSON()}".LinuxBash(false);

            //网络状态:接收的数据包数量,发送的数据包数量,接收字节数,发送字节数
            var NetWork = server.NetWork;

            $"echo {NetWork.SerializeJSON()}".LinuxBash(false);

            //网络连接状态: tcp客户端IP,服务器IP,连接状态
            var NetworkConnections = server.NetworkConnections;

            foreach (var net in NetworkConnections)
            {
                $"echo {net.SerializeJSON()}".LinuxBash(false);
            }

            //进程列表:进程id,进程所有者的用户名,虚拟内存使用量,物理内存使用量,进程状态,CPU使用率,进程命令名
            var Tasks = server.Tasks;

            for (int i = 0; i < 6; i++)
            {
                $"echo {Tasks[i].SerializeJSON()}".LinuxBash(false);
            }



            Console.WriteLine("Press any key to exit");
            Console.ReadLine();
        }