From da28c3fb8ed84d4a4bd5634179259ba9825abe79 Mon Sep 17 00:00:00 2001 From: Jeroen De Meerleer Date: Fri, 18 Aug 2017 18:58:04 +0200 Subject: [PATCH] Added remote jobs --- addjob.php | 5 +++-- editjob.php | 8 +++++--- templates/addjob.html.twig | 5 +++++ templates/editjob.html.twig | 5 +++++ webcron.php | 5 +++-- 5 files changed, 21 insertions(+), 7 deletions(-) diff --git a/addjob.php b/addjob.php index 5b373e5..eca0aeb 100644 --- a/addjob.php +++ b/addjob.php @@ -60,6 +60,7 @@ elseif ($_SERVER["REQUEST_METHOD"] == "POST") { } $url = $_POST['url']; + $host = $_POST['host']; $name = $_POST['name']; $delay = $_POST['delay']; $nextrunObj = new DateTime($_POST['nextrun']); @@ -75,8 +76,8 @@ elseif ($_SERVER["REQUEST_METHOD"] == "POST") { } - $stmt = $db->prepare("INSERT INTO jobs(user, name, url, delay, nextrun) VALUES(?, ?, ?, ?, ?)"); - $stmt->execute(array($_SESSION["userID"], $name, $url, $delay, $nextrun)); + $stmt = $db->prepare("INSERT INTO jobs(user, name, url, host, delay, nextrun) VALUES(?, ?, ?, ?, ?, ?)"); + $stmt->execute(array($_SESSION["userID"], $name, $url, $host, $delay, $nextrun)); header("location:addjob.php?message=added"); exit; diff --git a/editjob.php b/editjob.php index f08f4bf..1d6a275 100644 --- a/editjob.php +++ b/editjob.php @@ -38,6 +38,7 @@ if ($_SERVER["REQUEST_METHOD"] == "GET") { } $name = $jobnameResult[0]['name']; $url = $jobnameResult[0]['url']; + $host = $jobnameResult[0]['host']; $delay = $jobnameResult[0]['delay']; $nextrun = date("m/d/Y h:i A", $jobnameResult[0]['nextrun']); @@ -58,7 +59,7 @@ if ($_SERVER["REQUEST_METHOD"] == "GET") { } - echo $twig->render('editjob.html.twig', array("name" => $name, "url" => $url, "delay" => $delay, "nextrun" => $nextrun, "jobID" => $jobID, "error" => $error)); + echo $twig->render('editjob.html.twig', array("name" => $name, "url" => $url, "host" => $host, "delay" => $delay, "nextrun" => $nextrun, "jobID" => $jobID, "error" => $error)); } elseif ($_SERVER["REQUEST_METHOD"] == "POST") { @@ -70,6 +71,7 @@ elseif ($_SERVER["REQUEST_METHOD"] == "POST") { $url = $_POST['url']; $name = $_POST['name']; $delay = $_POST['delay']; + $host = $_POST['host']; $nextrunObj = new DateTime($_POST['nextrun']); $nextrun = $nextrunObj->getTimestamp(); @@ -83,8 +85,8 @@ elseif ($_SERVER["REQUEST_METHOD"] == "POST") { } - $stmt = $db->prepare("UPDATE jobs SET name = ?, url = ?, delay = ?, nextrun = ? WHERE jobID = ?"); - $stmt->execute(array($name, $url, $delay, $nextrun, $jobID)); + $stmt = $db->prepare("UPDATE jobs SET name = ?, url = ?, host = ?, delay = ?, nextrun = ? WHERE jobID = ?"); + $stmt->execute(array($name, $url, $host, $delay, $nextrun, $jobID)); header("location:overview.php?message=edited"); exit; diff --git a/templates/addjob.html.twig b/templates/addjob.html.twig index 16eebb0..612f407 100644 --- a/templates/addjob.html.twig +++ b/templates/addjob.html.twig @@ -24,6 +24,11 @@ + +
+ + +
diff --git a/templates/editjob.html.twig b/templates/editjob.html.twig index b177db7..b204550 100644 --- a/templates/editjob.html.twig +++ b/templates/editjob.html.twig @@ -19,6 +19,11 @@
+ +
+ + +
diff --git a/webcron.php b/webcron.php index 9a1d7ce..70c8082 100644 --- a/webcron.php +++ b/webcron.php @@ -60,7 +60,7 @@ if (file_exists("cache/get-services.trigger")) { } } -$stmt = $db->query('SELECT jobID, url, delay, nextrun FROM jobs WHERE nextrun < ' . time()); +$stmt = $db->query('SELECT jobID, url, host, delay, nextrun FROM jobs WHERE nextrun < ' . time()); $results = $stmt->fetchAll(PDO::FETCH_ASSOC); $client = new \GuzzleHttp\Client(); @@ -81,7 +81,8 @@ foreach ($results as $result) { if($result["url"] != "reboot") { $body = ''; $statuscode = 0; - exec($result["url"] . " 2>&1", $body, $statuscode); + $url = "ssh " . $result['host'] . " '" . $result['url'] . "'"; + exec($url, $body, $statuscode); $body = implode("\n", $body); } else { if (!file_exists('cache/get-services.trigger')) {