/// <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())); }
/// <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"); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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"); }