import paramiko def inspect_remote(): host = "192.168.130.171" user = "roni" pw = "BTSai123" commands = { "Directory listing": "ls -la ~/LocalFoodAI", "Python processes": "ps aux | grep -i python", "Port binding (8000)": "ss -tln | grep 8000 || netstat -an | grep 8000 || true", "Recent logs (server.log)": "tail -n 20 ~/LocalFoodAI/server.log", "Network interfaces / IP info": "ip addr show | grep -E 'inet '", "UFW status": "sudo ufw status || true", "System uptime & load": "uptime" } try: print(f"Connecting to remote VM at {host}...") client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(host, username=user, password=pw, timeout=10) print("Connected successfully. Running diagnostics...\n") for desc, cmd in commands.items(): print("=" * 60) print(f"DIAGNOSTIC: {desc}") print(f"COMMAND: {cmd}") print("=" * 60) stdin, stdout, stderr = client.exec_command(cmd) out = stdout.read().decode().strip() err = stderr.read().decode().strip() if out: print(out) else: print("[No Output]") if err: print(f"\n[stderr]:\n{err}") print() client.close() except Exception as e: print(f"Error during inspection: {e}") if __name__ == "__main__": inspect_remote()