#!/bin/bash # 看中转到底吃多少资源 —— 好判断免费容器够不够 set -u echo "════════ 进程占用 ════════" for pat in relay.py cloudflared; do pid=$(pgrep -f "$pat" | head -1) if [ -n "${pid:-}" ]; then rss=$(ps -o rss= -p "$pid" | tr -d ' ') cpu=$(ps -o %cpu= -p "$pid" | tr -d ' ') etime=$(ps -o etime= -p "$pid" | tr -d ' ') printf " %-14s PID %-6s 内存 %5.1f MB CPU %s%% 已跑 %s\n" \ "$pat" "$pid" "$(echo "$rss/1024" | bc -l)" "$cpu" "$etime" else printf " %-14s 没在跑\n" "$pat" fi done echo echo "════════ 系统整体 ════════" echo " CPU 核心: $(nproc)" echo " 内存总量: $(free -m | awk '/Mem:/{print $2}') MB" echo " 已用: $(free -m | awk '/Mem:/{print $3}') MB" echo " 可用: $(free -m | awk '/Mem:/{print $7}') MB" echo " 磁盘: $(df -h /root | awk 'NR==2{print $3" / "$2" ("$5" 已用)"}')" echo " 负载: $(cat /proc/loadavg | cut -d' ' -f1-3)" echo echo "════════ 中转的数据目录(要跟着搬的东西)════════" du -sh /root/lanremote-relay 2>/dev/null | sed 's/^/ /' echo " ---" du -sh /root/lanremote-relay/* 2>/dev/null | sort -h | tail -8 | sed 's/^/ /' echo echo "════════ 每天请求量(估算托管配额需求)════════" echo " agent poll 间隔: $(grep -oE 'POLL_SECONDS = float\(os.environ.get\("RELAY_POLL", "[0-9]+"' /root/lanremote-relay/relay.py | grep -oE '"[0-9]+"' | tr -d '"') 秒" echo " => 单台被控端: $((86400 / 15)) 次/天(按 15 秒算)" echo " => 若 3 台: $((86400 / 15 * 3)) 次/天" echo echo "════════ 现在的中转总量(并发/会话)════════" curl -s --max-time 8 http://127.0.0.1:8080/v1/health 2>/dev/null \ | python3 -c " import sys, json d = json.load(sys.stdin) print(' 版本:', d.get('version')) print(' 设备:', len(d.get('devices', [])), '台') print(' 会话:', d.get('sessions', 0)) print(' 内存:', round(d.get('memoryKB', 0) / 1024), 'MB') print(' 累计请求:', d.get('totalRequests')) print(' 运行:', round(d.get('uptimeSeconds', 0) / 3600, 1), '小时') " 2>/dev/null | sed 's/^/ /'