- deploy_agent.sh: agent v3.3-shift — use dashboard-configured SHIFT path for file fetch/search (SR/SHIFT sites have no TAKELEAP folder), date fast-path; fix installer discarding the injected agent token (sentinel was being rewritten by the server's placeholder replace, agents ended up tokenless) - central_api_prototype.py: replace only the token assignment when serving the installer; add cpu_temp to TelemetryPayload (agents already send it, it was silently dropped); new endpoints set-shift-path, request-search, search-results; heartbeat response now carries shift_path + pending search - commands.json: restore last_reboot/dummy, add update_diag diagnostic - CLAUDE.md: document deployment layout, procedures, and gotchas
343 lines
7.4 KiB
JSON
343 lines
7.4 KiB
JSON
{
|
|
"nt": {
|
|
"whoami": [
|
|
"whoami"
|
|
],
|
|
"ls": [
|
|
"cmd.exe",
|
|
"/c",
|
|
"dir"
|
|
],
|
|
"echo": [
|
|
"cmd.exe",
|
|
"/c",
|
|
"echo",
|
|
"The prototype executed the echo command successfully on Windows!"
|
|
],
|
|
"reboot": [
|
|
"cmd.exe",
|
|
"/c",
|
|
"echo",
|
|
"SIMULATED WINDOWS REBOOT"
|
|
],
|
|
"systeminfo": [
|
|
"systeminfo"
|
|
],
|
|
"ipconfig": [
|
|
"ipconfig"
|
|
],
|
|
"date": [
|
|
"cmd.exe",
|
|
"/c",
|
|
"date",
|
|
"/t"
|
|
],
|
|
"check_space": [
|
|
"powershell.exe",
|
|
"-Command",
|
|
"Get-PSDrive -PSProvider FileSystem"
|
|
],
|
|
"check_takeleap": [
|
|
"python",
|
|
"client_agent_prototype.py",
|
|
"--check-takeleap"
|
|
],
|
|
"list_takeleap": [
|
|
"python",
|
|
"client_agent_prototype.py",
|
|
"--list-takeleap"
|
|
],
|
|
"list_takeleap_size": [
|
|
"python",
|
|
"client_agent_prototype.py",
|
|
"--list-takeleap-size"
|
|
],
|
|
"list_takeleap_shift_size": [
|
|
"python",
|
|
"client_agent_prototype.py",
|
|
"--list-takeleap-sub-size",
|
|
"SHIFT"
|
|
],
|
|
"list_takeleap_shift_files": [
|
|
"python",
|
|
"client_agent_prototype.py",
|
|
"--list-takeleap-sub-files",
|
|
"SHIFT"
|
|
],
|
|
"list_takeleap_errors_size": [
|
|
"python",
|
|
"client_agent_prototype.py",
|
|
"--list-takeleap-sub-size",
|
|
"Error_Videos"
|
|
],
|
|
"list_takeleap_errors_files": [
|
|
"python",
|
|
"client_agent_prototype.py",
|
|
"--list-takeleap-sub-files",
|
|
"Error_Videos"
|
|
],
|
|
"list_takeleap_upload_size": [
|
|
"python",
|
|
"client_agent_prototype.py",
|
|
"--list-takeleap-sub-size",
|
|
"UPLOAD_FOLDER"
|
|
],
|
|
"list_takeleap_upload_files": [
|
|
"python",
|
|
"client_agent_prototype.py",
|
|
"--list-takeleap-sub-files",
|
|
"UPLOAD_FOLDER"
|
|
]
|
|
},
|
|
"posix": {
|
|
"whoami": [
|
|
"whoami"
|
|
],
|
|
"ls": [
|
|
"ls",
|
|
"-la"
|
|
],
|
|
"echo": [
|
|
"echo",
|
|
"The prototype executed the echo command successfully on POSIX/WSL!"
|
|
],
|
|
"pwd": [
|
|
"pwd"
|
|
],
|
|
"date": [
|
|
"date"
|
|
],
|
|
"time": [
|
|
"date",
|
|
"+%T"
|
|
],
|
|
"systeminfo": [
|
|
"uname",
|
|
"-a"
|
|
],
|
|
"ipconfig": [
|
|
"ip",
|
|
"addr"
|
|
],
|
|
"check_space": [
|
|
"df",
|
|
"-h"
|
|
],
|
|
"memory": [
|
|
"free",
|
|
"-h"
|
|
],
|
|
"ps": [
|
|
"ps",
|
|
"aux"
|
|
],
|
|
"kill_python": [
|
|
"pkill",
|
|
"-9",
|
|
"python"
|
|
],
|
|
"ping_google": [
|
|
"ping",
|
|
"-c",
|
|
"4",
|
|
"google.com"
|
|
],
|
|
"env": [
|
|
"env"
|
|
],
|
|
"hostname": [
|
|
"hostname"
|
|
],
|
|
"reboot": [
|
|
"sudo",
|
|
"reboot"
|
|
],
|
|
"restart_mysql": [
|
|
"sudo",
|
|
"systemctl",
|
|
"restart",
|
|
"mysql"
|
|
],
|
|
"mysql_status": [
|
|
"sudo",
|
|
"systemctl",
|
|
"status",
|
|
"mysql"
|
|
],
|
|
"repair_mysql": [
|
|
"sudo",
|
|
"mysqlcheck",
|
|
"--defaults-file=/root/.my.cnf",
|
|
"--auto-repair",
|
|
"--optimize",
|
|
"Test_seekright",
|
|
"tbl_site_anomaly"
|
|
],
|
|
"repair_mysql_db": [
|
|
"sudo",
|
|
"mysqlcheck",
|
|
"--defaults-file=/root/.my.cnf",
|
|
"--auto-repair",
|
|
"--optimize",
|
|
"Test_seekright"
|
|
],
|
|
"restart_rustdesk": [
|
|
"sudo",
|
|
"systemctl",
|
|
"restart",
|
|
"rustdesk"
|
|
],
|
|
"check_display": [
|
|
"bash",
|
|
"-c",
|
|
"for i in /sys/class/drm/*/status; do echo \"$i: $(cat $i)\"; done"
|
|
],
|
|
"drm_details": [
|
|
"bash",
|
|
"-c",
|
|
"ls -l /sys/class/drm && echo '---' && cat /sys/class/drm/*/status"
|
|
],
|
|
"headless_check": [
|
|
"bash",
|
|
"-c",
|
|
"connected=0; for f in /sys/class/drm/*/status; do if grep -q connected $f; then connected=1; fi; done; if [ $connected -eq 1 ]; then echo DISPLAY_CONNECTED; else echo HEADLESS; fi"
|
|
],
|
|
"framebuffer_check": [
|
|
"bash",
|
|
"-c",
|
|
"ls -l /dev/fb* && cat /proc/fb"
|
|
],
|
|
"install_temp_tools": [
|
|
"bash",
|
|
"-c",
|
|
"sudo apt update && sudo apt install -y lm-sensors"
|
|
],
|
|
"detect_sensors": [
|
|
"bash",
|
|
"-c",
|
|
"sudo sensors-detect --auto"
|
|
],
|
|
"gpu_temp": [
|
|
"bash",
|
|
"-c",
|
|
"nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader"
|
|
],
|
|
"temperature": [
|
|
"bash",
|
|
"-c",
|
|
"sensors"
|
|
],
|
|
"check_edid": [
|
|
"bash",
|
|
"-c",
|
|
"for f in /sys/class/drm/*/edid; do echo $f; [ -s $f ] && echo 'EDID PRESENT' || echo 'NO EDID'; done"
|
|
],
|
|
"xrandr_display": [
|
|
"bash",
|
|
"-c",
|
|
"xrandr --query 2>&1"
|
|
],
|
|
"nvidia_status": [
|
|
"bash",
|
|
"-c",
|
|
"nvidia-smi"
|
|
],
|
|
"check_display_session": [
|
|
"bash",
|
|
"-c",
|
|
"echo DISPLAY=$DISPLAY && loginctl list-sessions"
|
|
],
|
|
"check_gpu_display": [
|
|
"bash",
|
|
"-c",
|
|
"lspci | grep -i -E 'vga|display|3d'"
|
|
],
|
|
"rustdesk_status": [
|
|
"sudo",
|
|
"systemctl",
|
|
"status",
|
|
"rustdesk"
|
|
],
|
|
"storage_devices": [
|
|
"lsblk"
|
|
],
|
|
"mounted_disks": [
|
|
"df",
|
|
"-hT"
|
|
],
|
|
"netstat": [
|
|
"ss",
|
|
"-tulnp"
|
|
],
|
|
"update_agent": [
|
|
"bash",
|
|
"-c",
|
|
"set -e; PY=/opt/seekright-agent/client_agent_prototype.py; URL=$(sed -n 's/^CENTRAL_BASE = \"\\(.*\\)\"/\\1/p' \"$PY\" | head -1); TOK=$(sed -n 's/^AGENT_TOKEN = \"\\(.*\\)\"/\\1/p' \"$PY\" | head -1); curl -fsSL -H \"X-Agent-Token: $TOK\" \"$URL/deploy_agent.sh\" -o /tmp/sr_update.sh; test -s /tmp/sr_update.sh; systemd-run --collect --description='SeekRight agent self-update' bash /tmp/sr_update.sh >/dev/null 2>&1; echo 'Update launched detached via systemd-run; agent will restart on the new version shortly.'"
|
|
],
|
|
"check_takeleap": [
|
|
"python3",
|
|
"/opt/seekright-agent/client_agent_prototype.py",
|
|
"--check-takeleap"
|
|
],
|
|
"list_takeleap": [
|
|
"python3",
|
|
"/opt/seekright-agent/client_agent_prototype.py",
|
|
"--list-takeleap"
|
|
],
|
|
"list_takeleap_size": [
|
|
"python3",
|
|
"/opt/seekright-agent/client_agent_prototype.py",
|
|
"--list-takeleap-size"
|
|
],
|
|
"list_takeleap_shift_size": [
|
|
"python3",
|
|
"/opt/seekright-agent/client_agent_prototype.py",
|
|
"--list-takeleap-sub-size",
|
|
"SHIFT"
|
|
],
|
|
"list_takeleap_shift_files": [
|
|
"python3",
|
|
"/opt/seekright-agent/client_agent_prototype.py",
|
|
"--list-takeleap-sub-files",
|
|
"SHIFT"
|
|
],
|
|
"list_takeleap_errors_size": [
|
|
"python3",
|
|
"/opt/seekright-agent/client_agent_prototype.py",
|
|
"--list-takeleap-sub-size",
|
|
"Error_Videos"
|
|
],
|
|
"list_takeleap_errors_files": [
|
|
"python3",
|
|
"/opt/seekright-agent/client_agent_prototype.py",
|
|
"--list-takeleap-sub-files",
|
|
"Error_Videos"
|
|
],
|
|
"list_takeleap_upload_size": [
|
|
"python3",
|
|
"/opt/seekright-agent/client_agent_prototype.py",
|
|
"--list-takeleap-sub-size",
|
|
"UPLOAD_FOLDER"
|
|
],
|
|
"list_takeleap_upload_files": [
|
|
"python3",
|
|
"/opt/seekright-agent/client_agent_prototype.py",
|
|
"--list-takeleap-sub-files",
|
|
"UPLOAD_FOLDER"
|
|
],
|
|
"last_reboot": [
|
|
"last",
|
|
"reboot"
|
|
],
|
|
"dummy": [
|
|
"last",
|
|
"reboot"
|
|
],
|
|
"update_diag": [
|
|
"bash",
|
|
"-c",
|
|
"echo HOST:$(hostname); echo USER:$(id -un); echo MACHINE_ID:$(cat /etc/machine-id 2>/dev/null); echo AGENT_PROCS:; pgrep -af client_agent_prototype 2>/dev/null; echo APT_PROCS:; ps aux | grep -E \"apt-get|apt |dpkg|unattended\" | grep -v grep; echo UPDATE_UNITS:; systemctl list-units \"run-r*\" --no-legend --all 2>&1 | head -5"
|
|
]
|
|
}
|
|
}
|