diff --git a/src/Interface/Jobs/IDiskMonitorRegistry.cs b/src/Interface/Jobs/IDiskMonitorRegistry.cs new file mode 100644 index 0000000..7d37359 --- /dev/null +++ b/src/Interface/Jobs/IDiskMonitorRegistry.cs @@ -0,0 +1,6 @@ +namespace Interface.Jobs; + +public interface IDiskMonitorRegistry +{ + void Job(); +} \ No newline at end of file diff --git a/src/Service/Jobs/DiskMonitorRegistry.cs b/src/Service/Jobs/DiskMonitorRegistry.cs new file mode 100644 index 0000000..bef44f0 --- /dev/null +++ b/src/Service/Jobs/DiskMonitorRegistry.cs @@ -0,0 +1,31 @@ +using System.Diagnostics; +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(result); + } +} \ No newline at end of file diff --git a/src/WebApi/Controllers/JobTriggerController.cs b/src/WebApi/Controllers/JobTriggerController.cs index 010f50e..c6ae8e4 100644 --- a/src/WebApi/Controllers/JobTriggerController.cs +++ b/src/WebApi/Controllers/JobTriggerController.cs @@ -12,6 +12,7 @@ public class JobTriggerController : BaseController private readonly IStartupRegistry _startupRegistry; private readonly IShutdownRegistry _shutdownRegistry; private readonly IChineseNfoRegistry _chineseNfoRegistry; + private readonly IDiskMonitorRegistry _diskMonitorRegistry; /// /// ctor @@ -23,7 +24,8 @@ public class JobTriggerController : BaseController IRSyncTaskRegistry rSyncTaskRegistry, IStartupRegistry startupRegistry, IShutdownRegistry shutdownRegistry, - IChineseNfoRegistry chineseNfoRegistry) + IChineseNfoRegistry chineseNfoRegistry, + IDiskMonitorRegistry diskMonitorRegistry) { _logTotalNotifyJobRegistry = logTotalNotifyJobRegistry; _diskActionMonitorRegistry = diskActionMonitorRegistry; @@ -32,6 +34,7 @@ public class JobTriggerController : BaseController _startupRegistry = startupRegistry; _shutdownRegistry = shutdownRegistry; _chineseNfoRegistry = chineseNfoRegistry; + _diskMonitorRegistry = diskMonitorRegistry; } [HttpGet] @@ -98,4 +101,12 @@ public class JobTriggerController : BaseController return "OK"; } + + [HttpGet] + public string DiskMonitor() + { + _diskMonitorRegistry.Job(); + + return "OK"; + } } \ No newline at end of file