2023-03-04 23:45:46 +00:00
|
|
|
|
<?php
|
2023-11-12 18:12:42 +00:00
|
|
|
|
if (!DEFINED('EGP'))
|
|
|
|
|
exit(header('Refresh: 0; URL=http://' . $_SERVER['SERVER_NAME'] . '/404'));
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
class control_server_action extends cron
|
|
|
|
|
{
|
|
|
|
|
function __construct()
|
|
|
|
|
{
|
|
|
|
|
global $argv, $mcache;
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
$nmch = 'cron_server_action_' . $argv[5];
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
if ($mcache->get($nmch))
|
|
|
|
|
return NULL;
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
$mcache->set($nmch, true, false, 10);
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
if ($argv[3] == 'console') {
|
|
|
|
|
global $sql;
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
$sql->query('SELECT `uid`, `unit` FROM `control_servers` WHERE `id`="' . $argv[5] . '" LIMIT 1');
|
|
|
|
|
$server = $sql->get();
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
include(LIB . 'ssh.php');
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
$sql->query('SELECT `address`, `passwd` FROM `control` WHERE `id`="' . $server['unit'] . '" LIMIT 1');
|
|
|
|
|
$unit = $sql->get();
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
// Проверка ssh соедниения пу с локацией
|
|
|
|
|
if (!$ssh->auth($unit['passwd'], $unit['address']))
|
|
|
|
|
return NULL;
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
$sql->query('SELECT `commands` FROM `control_crontab` WHERE `id`="' . $argv[6] . '" LIMIT 1');
|
|
|
|
|
$cron = $sql->get();
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
$aCmd = explode("\n", base64_decode($cron['commands']));
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
foreach ($aCmd as $cmd)
|
|
|
|
|
$ssh->set('sudo -u server' . $server['uid'] . ' screen -p 0 -S s_' . $server['uid'] . ' -X eval \'stuff "' . sys::cmd($cmd) . '"\015\'; sudo -u server' . $server['uid'] . ' screen -p 0 -S s_' . $server['uid'] . ' -X eval \'stuff \015\'');
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
return NULL;
|
|
|
|
|
}
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
include(LIB . 'control/' . $argv[4] . '/action.php');
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
if ($argv[3] == 'restart')
|
|
|
|
|
action::start($argv[5], 'restart');
|
|
|
|
|
else
|
|
|
|
|
action::$argv[3]($argv[5]);
|
|
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-05-05 01:17:19 +00:00
|
|
|
|
|
2023-03-04 23:45:46 +00:00
|
|
|
|
?>
|