public static bool Set() { var current = Application.CurrentConfiguration.SetupCommands; if (current == null) { return(false); } var setupLines = new string[current.Length]; for (var i = 0; i < current.Length; i++) { var setupCommand = current[i]; var exe = true; if (!string.IsNullOrEmpty(setupCommand.ControlBashCommand) && !string.IsNullOrEmpty(setupCommand.ControlResult)) { var setupCheckResult = CommonProcess.Execute(bashFileLocation, SetBahArguments(setupCommand.ControlBashCommand)); if (setupCheckResult.Any(_ => _.Contains(setupCommand.ControlResult))) { exe = false; } } if (exe) { ConsoleLogger.Log($"[setup] {setupCommand.BashCommand}"); CommonProcess.Do(bashFileLocation, SetBahArguments(setupCommand.BashCommand)); } setupLines[i] = setupCommand.BashCommand; } //File.WriteAllLines($"{Parameter.AntdCfgSetup}/{setupFilename}", setupLines); return(true); }
/// <summary> /// Lista effettiva degli snapshot da rimuovere /// Viene generata partendo dalla lista completa degli snapshot dopo essere stata filtrata secondo le Regole definite sotto /// </summary> public static HashSet <string> GetRemovableZfsSnapshotModels() { var result = CommonProcess.Execute(zfsFileLocation, snapshotCleanupArgs).Skip(1).ToArray(); var snapshots = new List <Model>(); foreach (var line in result) { var attr = line.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries); if (attr.Length < 1) { continue; } var snap = new Model(); snap.Name = attr[0]; snap.PoolName = attr[0].Split('@').FirstOrDefault(); snap.Dimension = Convert.ToInt64(attr[1]); snap.Created = GetZfsSnapshotModelDate(snap.Name); snapshots.Add(snap); } var list = new HashSet <string>(); var snapshotGroups = snapshots.GroupBy(_ => _.PoolName); foreach (var snpgrp in snapshotGroups) { var filter = Filter(snpgrp); foreach (var snp in filter) { list.Add(snp.Name); } } return(list); }
public static IEnumerable <string> GetNetworkAdapterRouting(string networkAdapter) { //todo map to model var args = CommonString.Append("route show ", networkAdapter); return(CommonProcess.Execute(ipFileLocation, args)); }
public static ZpoolModel[] GetPools() { var result = CommonProcess.Execute(zpoolFileLocation, "list").ToArray(); if (result.Length < 1) { return(new ZpoolModel[0]); } if (result[0].Contains(zpoolEmptyMessage)) { return(new ZpoolModel[0]); } var pools = new ZpoolModel[result.Length]; for (var i = 0; i < pools.Length; i++) { var currentData = result[i].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); pools[i] = new ZpoolModel { Name = currentData[0], Size = currentData[1], Alloc = currentData[2], Free = currentData[3], Expandsz = currentData[4], Frag = currentData[5], Cap = currentData[6], Dedup = currentData[7], Health = currentData[8], Altroot = currentData[9], Status = Bash.Execute($"zpool status {currentData[0]}") }; } return(pools); }
public static ZfsSnapshotModel[] GetSnapshots() { var result = CommonProcess.Execute(zfsFileLocation, "list -t snap").ToArray(); if (result.Length < 1) { return(new ZfsSnapshotModel[0]); } if (result[0].Contains(zfsEmptyMessage)) { return(new ZfsSnapshotModel[0]); } var snap = new ZfsSnapshotModel[result.Length]; for (var i = 0; i < snap.Length; i++) { var currentData = result[i].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); snap[i] = new ZfsSnapshotModel { Name = currentData[0], Used = currentData[1], Available = currentData[2], Refer = currentData[3], Mountpoint = currentData[4] }; } return(snap); }
public static VirshDomainModel GetDomainInfo(string domain) { //todo map to model var arg = CommonString.Append(dominfoArg, " ", domain); var result = CommonProcess.Execute(virshFileLocation, arg).Skip(2).ToArray(); var info = new VirshDomainModel(); return(info); }
public static IEnumerable <string> GetNetworkAdapter(string networkAdapter) { //todo map to model //dict["ip4-show-if-addr"] = new Command { //dict["ip4-show-if-link"] = new Command { var args = CommonString.Append("addr show ", networkAdapter); return(CommonProcess.Execute(ipFileLocation, args)); }
public static string[] GetImportPools() { var result = CommonProcess.Execute(zpoolFileLocation, zpoolImportArgs).Where(_ => _.Contains(zpoolImportFilter)).ToArray(); var pools = new string[result.Length]; for (var i = 0; i < result.Length; i++) { var currentData = result[i].Split(new[] { ':' }, 2, StringSplitOptions.RemoveEmptyEntries); pools[i] = currentData[1].Trim(); } return(pools); }
private static string GetVersion(string file) { var result = CommonProcess.Execute(fileLocation, file).ToArray(); if (result.Length == 0) { return(string.Empty); } var version = Help.CaptureGroup(result[0], "([0-9]{8,12})"); return(version); }
public static void SaveDefaultValues() { if (File.Exists(sysctlEtcConfFile)) { return; } CommonProcess.Do(sysctlFileLocation, "--system"); var result = CommonProcess.Execute(sysctlFileLocation, "-a"); File.WriteAllLines(sysctlEtcConfFile, result); File.Copy(sysctlEtcConfFile, sysctlConfFile, true); ConsoleLogger.Log("[sysctl] save default values"); }
public static string[] GetList() { var args = CommonString.Append("--no-pager --no-legend list-units"); var result = CommonProcess.Execute(systemctlFileLocation, args).Where(_ => !_.Contains("device")).ToArray(); var status = new string[result.Length]; for (var i = 0; i < result.Length; i++) { var currentLineData = result[i].Split(new[] { ' ' }, 2, StringSplitOptions.RemoveEmptyEntries); status[i] = currentLineData[0]; } return(status); }
public static string Get() { var result = CommonProcess.Execute(unameFileLocation, argument).ToArray(); if (result == null) { return(string.Empty); } if (result.Length < 1) { return(string.Empty); } return(result[0].Trim()); }
public static Status Get() { var result = CommonProcess.Execute(timedatectlFileLocation); if (result.Count() < 1) { return(new Status()); } var status = new Status { Timezone = result.FirstOrDefault(_ => _.Contains("Time zone:")).Split(new[] { ':' }).LastOrDefault().Trim() }; return(status); }
public static SystemService[] Get(SystemctlType type = SystemctlType.none) { string filter = ""; switch (type) { case SystemctlType.none: break; case SystemctlType.Service: filter = "--type=service"; break; case SystemctlType.Mount: filter = "--type=mount"; break; case SystemctlType.Timer: filter = "--type=timer"; break; case SystemctlType.Target: filter = "--type=target"; break; default: break; } var args = CommonString.Append("--no-pager --no-legend ", filter); var result = CommonProcess.Execute(systemctlFileLocation, args).ToArray(); var status = new SystemService[result.Length]; for (var i = 0; i < result.Length; i++) { var currentLine = result[i]; var currentLineData = currentLine.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); status[i] = new SystemService() { Type = type, Service = currentLineData[0], Active = IsEnabled(currentLineData[0]) ? true : false, Start = IsActive(currentLineData[0]) ? true : false, ForceRestart = false, Masking = false }; } return(status); }
public static bool IsEnabled(string unit) { var args = CommonString.Append(isEnabledArg, " ", unit); var status = CommonProcess.Execute(systemctlFileLocation, args); if (status == null) { return(false); } if (string.IsNullOrEmpty(status.FirstOrDefault())) { return(false); } return(!status.FirstOrDefault().Contains("disabled")); }
public static Status[] Get() { var result = CommonProcess.Execute(lsmodFileLocation).Skip(1).ToArray(); var status = new Status[result.Length]; for (var i = 0; i < result.Length; i++) { var currentLine = result[i]; status[i] = new Status() { Module = Help.CaptureGroup(currentLine, "([a-zA-Z_0-9]+)[\\s]*[0-9]+[0-9][\\s]+[0-9]+\\s"), UsedBy = Help.CaptureGroup(currentLine, "[a-zA-Z_0-9]+[\\s]*[0-9]+[0-9][\\s]+[0-9]+\\s([a-zA-Z_0-9, ]*)").Split(',') }; } return(status); }
public static SystemUser[] Get() { var result = CommonProcess.Execute(getentFileLocation, shadowArg).ToArray(); var users = new SystemUser[result.Length]; for (var i = 0; i < result.Length; i++) { var currentLine = result[i]; var currentLineData = currentLine.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries); users[i] = new SystemUser() { Active = true, Alias = currentLineData[0], Password = currentLineData[1] }; } return(users); }
/// <summary> /// Ottiene tutte le coppie Key-Value da Sysctl /// </summary> /// <returns></returns> public static SystemParameter[] GetAll() { var args = CommonString.Append("--all"); var result = CommonProcess.Execute(sysctlFileLocation).ToArray(); var status = new SystemParameter[result.Length]; for (var i = 0; i < result.Length; i++) { var currentLine = result[i]; var currentLineData = currentLine.Split(new[] { '=' }, StringSplitOptions.RemoveEmptyEntries); status[i] = new SystemParameter() { Key = GetKeyFilePath(currentLineData[0].Trim()), Value = currentLineData[1].Trim() }; } Array.Sort(status, (a, b) => (a.Key.CompareTo(b.Key))); return(status); }
public static NetRoute[] Get() { var args = CommonString.Append(route, " ", show); var result = CommonProcess.Execute(ipFileLocation, args).Where(_ => !_.Contains(protoKernel)).ToArray(); var routes = new NetRoute[result.Length]; for (var i = 0; i < result.Length; i++) { var currentLine = result[i]; var currentLineData = currentLine.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); routes[i] = new NetRoute() { Default = currentLine.Contains(@default) ? true : false, Destination = currentLine.Contains(@default) ? @default : currentLineData[0], Gateway = Help.CaptureGroup(currentLine, "(via [0-9\\.]+)").Replace("via", "").Trim(), Device = Help.CaptureGroup(currentLine, "(dev [a-zA-Z0-9\\.]+)").Replace("dev", "").Trim() }; } return(routes); }
public static UptimeModel Get() { if (!File.Exists(uptimeFileLocation)) { return(new UptimeModel()); } if (!File.Exists(loadaverageFile)) { return(new UptimeModel()); } var result = CommonProcess.Execute(uptimeFileLocation, since).FirstOrDefault(); var ldavg = File.Exists(loadaverageFile) ? File.ReadAllText(loadaverageFile) : string.Empty; var uptime = new UptimeModel() { Uptime = result, Users = string.Empty, LoadAverage = ldavg.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)[0] }; return(uptime); }
public static FreeModel[] Get() { var result = CommonProcess.Execute(freeFileLocation, freeOptions).Skip(1).Where(_ => !string.IsNullOrEmpty(_)).ToArray(); var free = new FreeModel[result.Length]; for (var i = 0; i < result.Length; i++) { var currentData = result[i].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); free[i] = new FreeModel() { Name = currentData[0].Trim(':'), Total = currentData[1], Used = currentData[2], Free = currentData[3], Shared = currentData.Length > 4 ? currentData[4] : string.Empty, BuffCache = currentData.Length > 5 ? currentData[5] : string.Empty, Available = currentData.Length > 6 ? currentData[6] : string.Empty }; } return(free); }
public static Host Get() { var result = CommonProcess.Execute(hostnamectlFileLocation); if (result.Count() < 1) { return(new Host()); } var host = new Host(); host.HostName = result.FirstOrDefault(_ => _.Contains("Static hostname:")).Split(new[] { ':' }).LastOrDefault().Trim(); host.HostLocation = result.FirstOrDefault(_ => _.Contains("Location:")).Split(new[] { ':' }).LastOrDefault().Trim(); host.HostChassis = result.FirstOrDefault(_ => _.Contains("Chassis:")).Split(new[] { ':' }).LastOrDefault().Trim(); host.HostDeployment = result.FirstOrDefault(_ => _.Contains("Deployment:")).Split(new[] { ':' }).LastOrDefault().Trim(); var machineIds = MachineIds.Get(); host.PartNumber = machineIds.PartNumber; host.SerialNumber = machineIds.SerialNumber; host.MachineUid = machineIds.SerialNumber; return(host); }
public static DiskUsageModel[] Get() { var result = CommonProcess.Execute(dfFileLocation, dfOptions).ToArray(); var free = new DiskUsageModel[result.Length]; for (var i = 0; i < result.Length; i++) { var currentData = result[i].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); free[i] = new DiskUsageModel() { Filesystem = currentData[0], Type = currentData[1], Size = currentData[2], Used = currentData[3], Avail = currentData[4], UsePercentage = currentData[5], MountedOn = currentData[6] }; } return(free); }
public static LosetupModel[] Get() { var result = CommonProcess.Execute(losetupFileLocation, losetupOptions).Where(_ => !string.IsNullOrEmpty(_)).ToArray(); var loetup = new LosetupModel[result.Length]; for (var i = 0; i < result.Length; i++) { var currentData = result[i].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); loetup[i] = new LosetupModel() { Name = currentData[0], Sizelimit = currentData[1], Offset = currentData[2], Autoclear = currentData[3], Readonly = currentData[4], Backfile = currentData[5], Dio = currentData[6] //Hash = currentData[7] }; } return(loetup); }
public static VirshDomainModel[] GetDomains() { var result = CommonProcess.Execute(virshFileLocation, listArg).Skip(2).ToArray(); if (result.Length - 1 <= 0) { return(new VirshDomainModel[0]); } var list = new VirshDomainModel[result.Length - 1]; for (var i = 0; i < result.Length - 1; i++) { var currentLineData = result[i].Split(new[] { ' ', '\t' }, 3, StringSplitOptions.RemoveEmptyEntries); list[i] = new VirshDomainModel() { Id = currentLineData[0], Name = currentLineData[1], State = currentLineData[2] }; } return(list); }
public static string Get() { return(CommonProcess.Execute(dateFileLocation).ToArray()[0]); }
public static IEnumerable <string> TestConfiguration(string haproxyConfigurationFile) { var args = "-f " + haproxyConfigurationFile + " -c"; return(CommonProcess.Execute(haproxyFileLocation, args)); }
public static string[] GetLog() { return(CommonProcess.Execute(journalctlFileLocation, journalctlOptions).ToArray()); }
public static string[] GetLastHours(int hours) { var args = CommonString.Append(journalctlOptions, " --since='", hours.ToString(), "h ago'"); return(CommonProcess.Execute(journalctlFileLocation, args).ToArray()); }
public static string[] GetUnitLog(string unitName) { var args = CommonString.Append(journalctlOptions, " -u ", unitName); return(CommonProcess.Execute(journalctlFileLocation, args).ToArray()); }