{ "steps": [ { "t": "17:02:02", "msg": "current bot pid=2435432 cmd=/home/zhvmvbd/virtualenv/cybrix-project/cybrix/uploader_bot/3.12/bin/python3.12_bin -u Cybrix_Upload", "ok": true }, { "t": "17:02:02", "msg": "aiodns not installed; skipping (non-fatal, can install later)", "ok": false }, { "t": "17:02:02", "msg": "import already patched", "ok": true }, { "t": "17:02:02", "msg": "check_join patched (1 match)", "ok": true }, { "t": "17:02:02", "msg": "syntax check passed", "ok": true }, { "t": "17:02:02", "msg": "patched file installed", "ok": true }, { "t": "17:02:02", "msg": "restart skipped (CYBFIX_NO_RESTART set)", "ok": true }, { "t": "17:02:02", "msg": "bot process now: pid=2435432", "ok": true } ], "ok": true, "keeper_sh": "#!/usr/bin/env bash\n# IP Hunter — نگهبان ۵ دقیقه‌ای (کرون):\n# ۱) زنده‌نگه‌داشتن/ری‌استارت پروسه بات\n# ۲) چرخش لاگ (سقف ۴ مگابایت — سهمیه دیسک هاست)\n# ۳) پینگ سلامت + تیک داخلی (مانیتورها/ارسال همگانی) با گارد داخل خود بات\nset -u\nBASE=\"/home/zhvmvbd/iphunter\"\nLOG=\"$BASE/iphunter.log\"\nKEY=\"CYBRIX_TICK_8530499237\"\nNODE_BIN=\"/home/zhvmvbd/.local/bin/node\"\n\n# ۱) پروسه زنده؟\nif ! pgrep -f \"$BASE/server.mjs\" >/dev/null 2>&1; then\n echo \"[$(date '+%F %T')] بات پایین است — ری‌استارت…\"\n bash \"$BASE/start.sh\"\nfi\n\n# ۲) چرخش لاگ\nif [ -f \"$LOG\" ]; then\n SZ=$(stat -c%s \"$LOG\" 2>/dev/null || echo 0)\n if [ \"$SZ\" -gt 4194304 ]; then\n : > \"$LOG\"\n echo \"[$(date '+%F %T')] لاگ چرخش یافت (بود $SZ بایت)\"\n fi\nfi\n\n# ۳) پینگ سلامت محلی (بدون عبور از وب عمومی)\ncurl -s -m 10 \"http://127.0.0.1:3210/__healthz\" >/dev/null 2>&1 || true\ncurl -s -m 15 \"http://127.0.0.1:3210/__keeper\" -H \"X-Internal-Key: $KEY\" >/dev/null 2>&1 || true\n" }