EngineGP/system/library/cron/scan_servers_copy.php

52 lines
1.6 KiB
PHP
Raw Normal View History

2023-03-04 23:45:46 +00:00
<?php
if (!DEFINED('EGP'))
exit(header('Refresh: 0; URL=http://' . $_SERVER['SERVER_NAME'] . '/404'));
2023-03-04 23:45:46 +00:00
class scan_servers_copy extends cron
{
function __construct()
{
global $sql, $argv, $start_point;
2023-03-04 23:45:46 +00:00
$servers = $argv;
2023-03-04 23:45:46 +00:00
unset($servers[0], $servers[1], $servers[2]);
2023-03-04 23:45:46 +00:00
$sql->query('SELECT `address` FROM `units` WHERE `id`="' . $servers[4] . '" LIMIT 1');
if (!$sql->num())
return NULL;
2023-03-04 23:45:46 +00:00
$unit = $sql->get();
2023-03-04 23:45:46 +00:00
$game = $servers[3];
2023-03-04 23:45:46 +00:00
unset($servers[3], $servers[4]);
2023-03-04 23:45:46 +00:00
$sql->query('SELECT `unit` FROM `servers` WHERE `id`="' . $servers[5] . '" LIMIT 1');
$server = $sql->get();
2023-03-04 23:45:46 +00:00
$sql->query('SELECT `address`, `passwd` FROM `units` WHERE `id`="' . $server['unit'] . '" LIMIT 1');
$unit = $sql->get();
2023-03-04 23:45:46 +00:00
include(LIB . 'ssh.php');
2023-03-04 23:45:46 +00:00
// Проверка ssh соедниения пу с локацией
if (!$ssh->auth($unit['passwd'], $unit['address']))
return NULL;
2023-03-04 23:45:46 +00:00
foreach ($servers as $id) {
$copys = $sql->query('SELECT `id` FROM `copy` WHERE `status`="0"');
while ($copy = $sql->get($copys)) {
$sql->query('SELECT `uid` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
$server = $sql->get();
2023-03-04 23:45:46 +00:00
if (!sys::int($ssh->get('ps aux | grep copy_' . $server['uid'] . ' | grep -v grep | awk \'{print $2}\'')))
$sql->query('UPDATE `copy` set `status`="1" WHERE `id`="' . $copy['id'] . '" LIMIT 1');
}
}
return NULL;
}
}
2023-05-05 01:17:19 +00:00
2023-03-04 23:45:46 +00:00
?>