2023-03-04 23:45:46 +00:00
|
|
|
|
<?php
|
2023-11-12 18:12:42 +00:00
|
|
|
|
if (!DEFINED('EGP'))
|
2023-12-23 01:50:14 +00:00
|
|
|
|
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
class control_scan_servers_admins extends cron
|
|
|
|
|
{
|
|
|
|
|
function __construct()
|
|
|
|
|
{
|
|
|
|
|
global $sql, $argv, $start_point;
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
$servers = $argv;
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
unset($servers[0], $servers[1], $servers[2]);
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
$game = $servers[3];
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
if (!array_key_exists($game, cron::$admins_file))
|
|
|
|
|
return NULL;
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
$sql->query('SELECT `address` FROM `control` WHERE `id`="' . $servers[4] . '" LIMIT 1');
|
|
|
|
|
if (!$sql->num())
|
|
|
|
|
return NULL;
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
$unit = $sql->get();
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
unset($servers[3], $servers[4]);
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
$sql->query('SELECT `unit` FROM `control_servers` WHERE `id`="' . $servers[5] . '" LIMIT 1');
|
|
|
|
|
$server = $sql->get();
|
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
|
|
|
|
include(LIB . 'ssh.php');
|
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
|
|
|
|
foreach ($servers as $id) {
|
|
|
|
|
$sql->query('SELECT `uid` FROM `control_servers` WHERE `id`="' . $id . '" LIMIT 1');
|
|
|
|
|
$server = $sql->get();
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
$admins = $sql->query('SELECT `id`, `text` FROM `control_admins_' . $game . '` WHERE `server`="' . $id . '" AND `active`="1" AND `time`<"' . $start_point . '"');
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
if (!$sql->num($admins))
|
|
|
|
|
continue;
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
$cmd = 'cd /servers/' . $server['uid'] . ';';
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
while ($admin = $sql->get($admins)) {
|
|
|
|
|
$cmd .= 'sed -i -e \'s/' . escapeshellcmd(htmlspecialchars_decode($admin['text'])) . '//g\' ' . cron::$admins_file[$game] . ';';
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
$sql->query('UPDATE `admins_' . $game . '` set `active`="0" WHERE `id`="' . $admin['id'] . '" LIMIT 1');
|
|
|
|
|
}
|
2023-03-04 23:45:46 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
$cmd .= 'sed -i ' . "'/./!d'" . ' ' . cron::$admins_file[$game] . '; echo -e "\n" >> ' . cron::$admins_file[$game] . ';';
|
|
|
|
|
$cmd .= 'chown server' . $server['uid'] . ':1000 ' . cron::$admins_file[$game];
|
2023-05-05 01:17:19 +00:00
|
|
|
|
|
2023-11-12 18:12:42 +00:00
|
|
|
|
$ssh->set($cmd);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-05-05 01:17:19 +00:00
|
|
|
|
|
2023-03-04 23:45:46 +00:00
|
|
|
|
?>
|