diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index c4d85a014..1430fcdd1 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -12,6 +12,7 @@ use App\Jobs\PullSentinelImageJob; use App\Jobs\PullTemplatesFromCDN; use App\Jobs\ScheduledTaskJob; use App\Jobs\ServerCheckJob; +use App\Jobs\ServerStorageCheckJob; use App\Jobs\UpdateCoolifyJob; use App\Models\ScheduledDatabaseBackup; use App\Models\ScheduledTask; @@ -115,6 +116,7 @@ class Kernel extends ConsoleKernel } foreach ($servers as $server) { $schedule->job(new ServerCheckJob($server))->everyMinute()->onOneServer(); + // $schedule->job(new ServerStorageCheckJob($server))->everyMinute()->onOneServer(); $serverTimezone = $server->settings->server_timezone; if ($server->settings->force_docker_cleanup) { $schedule->job(new DockerCleanupJob($server))->cron($server->settings->docker_cleanup_frequency)->timezone($serverTimezone)->onOneServer(); diff --git a/app/Jobs/ServerStorageCheckJob.php b/app/Jobs/ServerStorageCheckJob.php new file mode 100644 index 000000000..376cb8532 --- /dev/null +++ b/app/Jobs/ServerStorageCheckJob.php @@ -0,0 +1,59 @@ +server->isFunctional()) { + ray('Server is not ready.'); + + return 'Server is not ready.'; + } + $team = $this->server->team; + $percentage = $this->server->storageCheck(); + if ($percentage > 1) { + ray('Server storage is at '.$percentage.'%'); + } + + } catch (\Throwable $e) { + ray($e->getMessage()); + + return handleError($e); + } + + } +} diff --git a/app/Models/Server.php b/app/Models/Server.php index caed8d8f0..f896541ad 100644 --- a/app/Models/Server.php +++ b/app/Models/Server.php @@ -1212,4 +1212,13 @@ $schema://$host { return $this; } + + public function storageCheck(): ?string + { + $commands = [ + 'df / --output=pcent | tr -cd 0-9', + ]; + + return instant_remote_process($commands, $this, false); + } }