Files
html/api/snap-control.php
2026-04-13 02:40:02 +02:00

26 lines
1.2 KiB
PHP

<?php
header('Content-Type: application/json');
$action = $_GET['action'] ?? 'status';
$ps = trim(shell_exec('ps aux 2>/dev/null | grep "wevia-snap-archiver" | grep -v grep'));
$running = !empty($ps);
switch ($action) {
case 'launch':
if ($running) { echo json_encode(['ok'=>false,'msg'=>'Already running: '.$ps]); break; }
shell_exec('rm -f /tmp/snap-archiver.lock /tmp/wevia-snapshot-archiver.log 2>/dev/null');
shell_exec('echo /tmp/snap-final.sh | at now 2>&1');
sleep(3);
$ps2 = trim(shell_exec('ps aux 2>/dev/null | grep "wevia-snap-archiver" | grep -v grep'));
echo json_encode(['ok'=>true,'msg'=>'LAUNCHED','process'=>$ps2]);
break;
case 'kill':
shell_exec('pkill -f wevia-snap-archiver 2>/dev/null; rm -f /tmp/snap-archiver.lock');
echo json_encode(['ok'=>true,'msg'=>'KILLED']);
break;
default: // status
$log = @file_get_contents('/tmp/wevia-snapshot-archiver.log') ?: '';
$last = implode("\n", array_slice(explode("\n", trim($log)), -10));
$hz = trim(shell_exec('python3 /opt/weval-l99/wevia-snap-archiver.py list 2>&1'));
echo json_encode(['running'=>$running,'process'=>$ps,'snapshots'=>$hz,'log'=>$last]);
}