Files
wevads-platform/scripts/api_repair.php
2026-02-26 04:53:11 +01:00

59 lines
2.2 KiB
PHP
Executable File

<?php
header('Content-Type: application/json');
$action = $_GET['action'] ?? $_POST['action'] ?? '';
switch($action) {
case 'run':
$output = shell_exec('/opt/wevads/scripts/auto-repair.sh 2>&1');
echo json_encode(['success' => true, 'output' => $output]);
break;
case 'status':
$services = [
'apache2' => trim(shell_exec('systemctl is-active apache2 2>/dev/null')) === 'active',
'postgresql' => trim(shell_exec('systemctl is-active postgresql 2>/dev/null')) === 'active',
'n8n' => trim(shell_exec('systemctl is-active n8n 2>/dev/null')) === 'active',
'java' => trim(shell_exec('pgrep -f adxapp.jar > /dev/null && echo 1 || echo 0')) === '1'
];
$disk = (int)trim(shell_exec("df / | tail -1 | awk '{print \$5}' | sed 's/%//'"));
$mem = shell_exec("free -m | grep Mem | awk '{print \$2,\$7}'");
list($total, $avail) = explode(' ', trim($mem));
$mem_percent = round(($avail / $total) * 100);
$ports = [];
foreach([5821, 5822, 5823, 5678, 5432] as $p) {
$ports[$p] = trim(shell_exec("netstat -tlnp 2>/dev/null | grep -q ':$p ' && echo 1 || echo 0")) === '1';
}
echo json_encode([
'success' => true,
'services' => $services,
'disk_usage' => $disk,
'mem_free' => $mem_percent,
'ports' => $ports,
'timestamp' => date('Y-m-d H:i:s')
]);
break;
case 'restart':
$service = $_POST['service'] ?? '';
if(in_array($service, ['apache2', 'postgresql', 'n8n'])) {
shell_exec("systemctl restart $service 2>&1");
echo json_encode(['success' => true, 'message' => "$service restarted"]);
} else {
echo json_encode(['success' => false, 'error' => 'Invalid service']);
}
break;
case 'logs':
$logs = shell_exec('tail -50 /var/log/wevads/auto-repair.log 2>/dev/null');
echo json_encode(['success' => true, 'logs' => $logs]);
break;
default:
echo json_encode(['success' => false, 'error' => 'Unknown action']);
}