using System.Diagnostics; using System.Text; using FluentScheduler; using Interface.Jobs; namespace Service.Jobs; public class DiskMonitorRegistry : Registry, IDiskMonitorRegistry { public void Job() { // 执行 cmd 命令 获取执行结果 var command = "df -h"; var process = new Process { StartInfo = new() { FileName = "/bin/bash", Arguments = $"-c \"{command}\"", RedirectStandardOutput = true, UseShellExecute = false, CreateNoWindow = true } }; process.Start(); var result = process.StandardOutput.ReadToEnd(); process.WaitForExit(); Console.WriteLine(FormatResult(result)); } private string FormatResult(string result) { var lines = result.Split("\n"); var sb = new StringBuilder(); foreach (var line in lines) { var cols = line.Split(" ", StringSplitOptions.RemoveEmptyEntries); if (line.Contains("/host/wd/")) { sb.AppendLine($"{cols[5].Substring("/host".Length)}, {cols[1]}, {cols[4].TrimEnd('%')}, {cols[2]}"); } } return sb.ToString(); } }