Пример #1
0
            /// <summary>
            /// 获取操作系统
            /// </summary>
            /// <returns></returns>
            public static string OperatingSystem()
            {
                string os = null;

                try
                {
                    if (File.Exists("/etc/os-release"))
                    {
                        var list = FileTo.ReadText("/etc/os-release").Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        os = list.FirstOrDefault(x => x.Contains("PRETTY_NAME")).Split('"')[1];
                    }
                    else if (File.Exists("/etc/redhat-release"))
                    {
                        os = FileTo.ReadText("/etc/redhat-release");
                    }
                    else if (File.Exists("/etc/lsb-release"))
                    {
                        var list = FileTo.ReadText("/etc/lsb-release").Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        os = list.FirstOrDefault(x => x.Contains("DESCRIPTION")).Split('"')[1];
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
                return(os.Trim(Environment.NewLine.ToCharArray()));
            }
Пример #2
0
        /// <summary>
        /// 写入消息
        /// </summary>
        /// <param name="msg"></param>
        public static void Log(string msg)
        {
            var dt   = DateTime.Now;
            var path = "/logs/" + dt.ToString("yyyyMM") + "/";

            path = MapPathTo.Map(path);
            FileTo.WriteText(msg, path, "console_" + dt.ToString("yyyyMMdd") + ".log");
        }
Пример #3
0
            /// <summary>
            /// 获取型号
            /// </summary>
            /// <returns></returns>
            public static string Model()
            {
                try
                {
                    var model = FileTo.ReadText("/sys/class/dmi/id/product_name")?.Trim();

                    return(model);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("/sys/class/dmi/id/product_name");
                    Console.WriteLine(ex);
                }
                return(null);
            }
Пример #4
0
            /// <summary>
            /// 运行时长
            /// </summary>
            /// <returns></returns>
            public static long RunTime()
            {
                try
                {
                    var uptime = FileTo.ReadText("/proc/uptime");
                    var pitem  = Convert.ToDouble(uptime.Split(' ')[0]);

                    var pvalue = Convert.ToInt64(pitem * 1000);;

                    return(pvalue);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("/proc/uptime");
                    Console.WriteLine(ex);
                }
                return(0);
            }
Пример #5
0
            /// <summary>
            /// 获取 /proc/meminfo
            /// </summary>
            /// <param name="pkey"></param>
            /// <returns></returns>
            public static long MemInfo(string pkey)
            {
                try
                {
                    var meminfo = FileTo.ReadText("/proc/meminfo");
                    var pitem   = meminfo.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries).FirstOrDefault(x => x.StartsWith(pkey));

                    var pvalue = 1024 * long.Parse(pitem.Replace(pkey, "").ToLower().Replace("kb", "").Trim());

                    return(pvalue);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("/proc/meminfo");
                    Console.WriteLine(ex);
                }
                return(0);
            }
Пример #6
0
            /// <summary>
            /// 获取 /proc/cpuinfo
            /// </summary>
            /// <param name="pkey"></param>
            /// <returns></returns>
            public static string CpuInfo(string pkey)
            {
                try
                {
                    var meminfo = FileTo.ReadText("/proc/cpuinfo") + Environment.NewLine + CmdTo.Execute("lscpu").CrOutput;
                    var pitem   = meminfo.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries).FirstOrDefault(x => x.StartsWith(pkey, StringComparison.OrdinalIgnoreCase));

                    var pvalue = pitem.Split(':')[1].Trim();

                    return(pvalue);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("/proc/cpuinfo");
                    Console.WriteLine("lscpu");
                    Console.WriteLine(ex);
                }
                return(null);
            }
Пример #7
0
        /// <summary>
        /// 写入消息
        /// </summary>
        /// <param name="msg"></param>
        public static void Log(object msg)
        {
            string txt;

            try
            {
                switch (msg.GetType().Name)
                {
                case "Enum":
                case "Byte":
                case "Char":
                case "String":
                case "Boolean":
                case "UInt16":
                case "Int16":
                case "Int32":
                case "Int64":
                case "Single":
                case "Double":
                case "Decimal":
                    txt = msg.ToString();
                    break;

                default:
                    txt = msg.ToJson();
                    break;
                }
            }
            catch (Exception)
            {
                txt = msg.ToString();
            }

            var now      = DateTime.Now;
            var filename = $"console_{now:yyyyMMdd}.log";
            var path     = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "logs", now.ToString("yyyyMM"), filename);

            FileTo.WriteText(txt, path);
        }
Пример #8
0
        /// <summary>
        /// 写入消息
        /// </summary>
        /// <param name="msg"></param>
        public static void Log(object msg)
        {
            string txt;

            try
            {
                switch (msg.GetType().Name)
                {
                case "Enum":
                case "Byte":
                case "Char":
                case "String":
                case "Boolean":
                case "UInt16":
                case "Int16":
                case "Int32":
                case "Int64":
                case "Single":
                case "Double":
                case "Decimal":
                    txt = msg.ToString();
                    break;

                default:
                    txt = msg.ToJson();
                    break;
                }
            }
            catch (Exception)
            {
                txt = msg.ToString();
            }

            var dt   = DateTime.Now;
            var path = AppDomain.CurrentDomain.BaseDirectory.Replace("\\", "/").TrimEnd('/') + "/logs/" + dt.ToString("yyyyMM") + "/";

            FileTo.WriteText(txt, path, "console_" + dt.ToString("yyyyMMdd") + ".log");
        }