delete.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. if (!DEFINED('EGP'))
  3. exit(header('Refresh: 0; URL=http://' . $_SERVER['SERVER_NAME'] . '/404'));
  4. if (!$go)
  5. exit;
  6. $sql->query('SELECT `unit`, `tarif`, `map_start` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
  7. $server = array_merge($server, $sql->get());
  8. $sql->query('SELECT `address`, `passwd` FROM `units` WHERE `id`="' . $server['unit'] . '" LIMIT 1');
  9. $unit = $sql->get();
  10. if (!isset($ssh))
  11. include(LIB . 'ssh.php');
  12. if (!$ssh->auth($unit['passwd'], $unit['address']))
  13. sys::outjs(array('e' => sys::text('error', 'ssh')), $nmch);
  14. $sql->query('SELECT `install` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
  15. $tarif = $sql->get();
  16. $dir = $tarif['install'] . $server['uid'] . '/game/csgo/';
  17. // Генерация списка карт
  18. $ssh->set('cd ' . $dir . 'maps/ && ls | grep -iE "\.vpk$"');
  19. $maps = $ssh->get();
  20. $aMaps = explode("\n", str_ireplace('.vpk', '', $maps));
  21. // Массив переданных карт
  22. $in_aMaps = isset($_POST['maps']) ? $_POST['maps'] : array();
  23. // Обработка выборки
  24. foreach ($in_aMaps as $name => $sel)
  25. if ($sel) {
  26. $map = str_replace(array("\\", "'", "'", '-_-'), array('', '', '', '$'), $name);
  27. // Проверка наличия карты
  28. if (!in_array($map, $aMaps))
  29. continue;
  30. // Проверка: является ли карта стартовой
  31. if ($server['map_start'] == $map)
  32. continue;
  33. $ssh->set('cd /path/maps/' . $server['game'] . '/' . sys::map($map) . ' && du -a | grep -iE "\.[a-z]{1,3}$" | awk \'{print $2}\'');
  34. $aFiles = explode("\n", str_replace('./', '', $ssh->get()));
  35. if (isset($aFiles[count($aFiles) - 1]) and $aFiles[count($aFiles) - 1] == '')
  36. unset($aFiles[count($aFiles) - 1]);
  37. $files = '';
  38. foreach ($aFiles as $file)
  39. $files .= $dir . $file . ' ';
  40. $rm = '';
  41. $aFlrm = explode(' ', $dir . 'maps/' . $map . '.* ' . trim($files));
  42. foreach ($aFlrm as $flrm)
  43. $rm .= sys::map($flrm) . ' ';
  44. $ssh->set('sudo -u server' . $server['uid'] . ' screen -dmS md' . $start_point . $id . ' sh -c \'rm ' . trim($rm) . '\'');
  45. }
  46. sys::outjs(array('s' => 'ok'), $nmch);
  47. ?>