AgentSkillsCN

server-management

一套用于管理服务器、数据库,并在生产环境中处理运行时错误的协议。

SKILL.md
--- frontmatter
name: server-management
description: مجموعة بروتوكولات لإدارة السيرفر، قاعدة البيانات، والتعامل مع أخطاء التشغيل في بيئة الإنتاج.

🛠️ مهارة إدارة السيرفر (Server Management Skill)

هذه المهارة تهدف لضمان استقرار النظام (Stability) وتجنب "التخمين" أثناء التعامل مع السيرفر.

📋 ميثاق العمل (The Protocol)

1. التعامل مع قاعدة البيانات (PostgreSQL)

  • القاعدة الذهبية: لا تفرض كلمة مرور جديدة قبل التأكد من اسم قاعدة البيانات والمستخدم.
  • التحقق: استخدم دائماً SELECT datname FROM pg_database; و SELECT rolname FROM pg_roles;.
  • التغيير: يتم تغيير الباسورد عبر ملف SQL مؤقت يُرفع داخل الحاوية (Docker Container) لتجنب أخطاء Shell Quoting.

2. إدارة PM2 و NestJS

  • المنفذ (Port): في بيئة Linux، المنافذ أقل من 1024 تتطلب صلاحيات Root. استخدم دائماً المنفذ 3000 أو أعلى للخدمات العادية.
  • تحديث البيئة: لا تستخدم pm2 restart وحده؛ استخدم دائماً pm2 restart APP_NAME --update-env لضمان قراءة التغييرات في ملفات .env.

3. طلبات الـ API (JSON-Safe Protocol)

  • القاعدة: لتجنب أخطاء الرموز (", ') في الـ JSON، استخدم دائماً صيغة bash متعددة الأسطر مع الـ SSH.
  • النمط:
    bash
    ssh MyServer "bash -c \"curl -s -X POST http://localhost:3000/api/tenants \\
    -H 'Content-Type: application/json' \\
    -d '{\\\"id\\\": \\\"tenant-id\\\", \\\"name\\\": \\\"Tenant Name\\\"}'\""
    
    أو استدعاء ملف bash مؤقت إذا كان الـ JSON ضخماً.

4. الصلاحيات (Sudo)

  • إذا واجهت Permission denied أو Not in sudoers للمستخدم newAI:
    • لا تطلب من المستحدم تنفيذ الأمر يدوياً.
    • استخدم قناة SSH لإصلاح الصلاحيات (usermod -aG sudo) أو تنفيذ الأمر كـ root.

5. بروتوكول التعامل مع المشاكل المستمرة

  • القاعدة: إذا واجهت مشكلة تقنية (مثل خطأ 500 أو فشل بناء)، حاول إصلاحها بحد أقصى مرتين (2 attempts).
  • الإجراء عند الفشل: إذا استمرت المشكلة بعد المحاولة الثانية، توقف فوراً وأرسل "تقرير حالة مفصل" للمستخدم يتضمن:
    • ما الذي حاولت فعله.
    • سجلات الأخطاء الدقيقة (Error Logs).
    • طلب التوجيه بالحل المقترح من قبل المستخدم.
  • الهدف: تجنب الدخول في حلقات إصلاح غير مجدية وضمان تدخل المستخدم في الوقت المناسب.

🚀 أوامر التحقق السريع (Health Checks)

  • التحقق من الاتصال: curl -I http://localhost:3000/health
  • فحص سجلات الأخطاء: pm2 logs APP_NAME --lines 50 --raw
  • فحص المنافذ: sudo ss -tulpn

6. بروتوكول التنفيذ المنفرد (Atomic Execution)

  • القاعدة الذهبية: يمنع منعاً باتاً دمج الأوامر البرمجية في سطر واحد باستخدام && أو ; عند التعامل مع السيرفر أو البناء.
  • التنفيذ: يجب تنفيذ كل خطوة كأمر مستقل (Separate Command Call).
    • خطوة الدخول للمجلد: أمر مستقل. (عشان نتأكد إننا في المكان الصح ومفيش خطأ في المسار)
    • خطوة الحذف: أمر مستقل. (عشان نتأكد إن الملفات القديمة اتمسحت فعلاً مش مجرد تجاهل للخطأ)
    • خطوة البناء: أمر مستقل. (عشان لو في خطأ في الكود يظهر فوراً ونعرف مكانه فين بالضبط)
    • خطوة التشغيل: أمر مستقل. (عشان نضمن إن كل شيء جاهز للعمل بكفاءة)
  • الهدف: الحصول على تغذية راجعة (Feedback) فورية ودقيقة لكل مرحلة، وتجنب "تراكم الأخطاء" (Cascading Errors) الذي يخفي السبب الحقيقي للفشل.

C:\Users\Dell\Desktop\52\doc\protocol.txt بروتوكول انشاء الملفات

C:\Users\Dell\Desktop\52\doc\SERVER_INFO.md

معلومات هامة جدا عن السيرفر


هذه المهارة تضمن عدم تكرار الأخطاء التقنية التي حدثت وتوفر "كود نظيف" وسيرفر مستقر، وهي وسيلة تعليمية لفهم كيفية إدارة الأنظمة الضخمة.