smlogs.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. if(!DEFINED('EGP'))
  3. exit(header('Refresh: 0; URL=http://'.$_SERVER['SERVER_NAME'].'/404'));
  4. $html->nav('Логи SourceMod');
  5. $sql->query('SELECT `address`, `passwd` FROM `control` WHERE `id`="'.$id.'" LIMIT 1');
  6. $unit = $sql->get();
  7. include(LIB.'ssh.php');
  8. if(!$ssh->auth($unit['passwd'], $unit['address']))
  9. sys::back($cfg['http'].'control/id/'.$id.'/server/'.$sid.'/section/settings');
  10. // Путь к логам
  11. $folder = '/servers/'.$server['uid'].'/cstrike/addons/sourcemod/logs';
  12. // Если выбран лог
  13. if(isset($url['log']))
  14. {
  15. if(sys::valid($url['log'], 'other', $aValid['csssmlogs']))
  16. sys::back($cfg['http'].'control/id/'.$id.'/server/'.$sid.'/section/settings/subsection/smlogs');
  17. $ssh->set('sudo -u server'.$server['uid'].' cat '.$folder.'/'.$url['log']);
  18. $html->get('view', 'sections/control/servers/games/settings/logs');
  19. $html->set('id', $id);
  20. $html->set('server', $sid);
  21. $html->set('name', $url['log']);
  22. $html->set('log', htmlspecialchars($ssh->get()));
  23. $html->set('uri', 'smlogs');
  24. $html->pack('main');
  25. }else{
  26. if(isset($url['delall']))
  27. {
  28. $ssh->set('cd '.$folder.' && rm *.log');
  29. sys::back($cfg['http'].'control/id/'.$id.'/server/'.$sid.'/section/settings/subsection/smlogs');
  30. }
  31. $ssh->set('cd '.$folder.' && du -ab --time | grep -e .log$ | awk \'{print $2" "$3"@"$1"@"$4}\' | sort -Mr');
  32. // Массив данных
  33. $aData = explode("\n", $ssh->get());
  34. if(isset($aData[count($aData)-1]))
  35. unset($aData[count($aData)-1]);
  36. // Построение списка
  37. foreach($aData as $line => $log)
  38. {
  39. $aLog = explode('@', $log);
  40. // Название
  41. $name = explode('/', $aLog[2]);
  42. if(count($name) > 2)
  43. continue;
  44. // Дата
  45. $date = sys::unidate($aLog[0]);
  46. // Вес
  47. $size = sys::size($aLog[1]);
  48. $html->get('list', 'sections/control/servers/games/settings/logs');
  49. $html->set('id', $id);
  50. $html->set('server', $sid);
  51. $html->set('name', end($name));
  52. $html->set('uri', 'smlogs/log/'.end($name));
  53. $html->set('date', $date);
  54. $html->set('size', $size);
  55. $html->pack('logs');
  56. }
  57. $html->get('logs', 'sections/control/servers/games/settings');
  58. $html->set('id', $id);
  59. $html->set('server', $sid);
  60. $html->set('uri', 'sm');
  61. $html->set('logs', isset($html->arr['logs']) ? $html->arr['logs'] : '');
  62. $html->pack('main');
  63. }
  64. ?>