Files
oliver af2fe940e7 hmm
2026-06-22 06:38:27 -03:00

48 lines
1012 B
Python
Executable File

#!/usr/bin/env python3
"""Collect server runtime stats (uptime, top, cgroup, mounts) and return as JSON."""
import json
import subprocess
def cmd(args, splitlines=False):
try:
result = subprocess.run(
args,
capture_output=True,
text=True,
timeout=30,
)
out = (result.stdout + result.stderr).strip()
if splitlines:
return out.splitlines()
return out
except Exception as e:
return f"ERROR: {e}"
def read_file(path):
try:
with open(path) as f:
return f.read().strip().splitlines()
except FileNotFoundError:
return None
def main():
stats = {}
stats["uptime"] = cmd(["uptime"])
stats["top"] = cmd(["sh", "-c", "top -b -n 1 | head -n 3"], splitlines=True)
stats["cgroup"] = read_file("/proc/self/cgroup")
stats["mounts"] = cmd(["mount"], splitlines=True)
print(json.dumps(stats, indent=2))
if __name__ == "__main__":
main()