أحمد حايس
الرئيسيةمن أناالدوراتالمدونةالمناهج والباقات
أحمد حايس

دورات عربية متخصصة في التقنية والبرمجة والذكاء الاصطناعي.

المنصة مبنية على الوضوح، التطبيق، والنتيجة النافعة: شرح مرتب يساعدك تفهم الأدوات، تكتب كودًا أفضل، وتستخدم الذكاء الاصطناعي بوعي داخل العمل الحقيقي.

تعلم أسرعوصول مباشر للدورات والمسارات من الموبايل.
تنقل أوضحالروابط الأساسية والدعم في مكان واحد بدون تشتيت.

المنصة

  • الرئيسية
  • من أنا
  • الدورات
  • المناهج والباقات
  • المدونة

الدعم

  • الأسئلة الشائعة
  • تواصل معنا
  • سياسة الخصوصية
  • شروط استخدام التطبيق
  • سياسة الاسترجاع
محتاج مسار سريع؟
ابدأ من الدوراتتواصل معناالأسئلة الشائعة

© 2026 أحمد حايس. جميع الحقوق محفوظة.

الرئيسيةالدوراتالمناهجالمدونةالدخول
How To Make It

اعمل بوت تيليجرام يبعتلك تنبيهات السيرفر بـ Python في 30 سطر

مبتدئ١٥ يونيو ٢٠٢٦5 دقائق قراءة
اعمل بوت تيليجرام يبعتلك تنبيهات السيرفر بـ Python في 30 سطر

المستوى المطلوب: مبتدئ

في آخر هذا الدليل هيكون عندك بوت تيليجرام بيبعت رسالة على موبايلك خلال ثانية لو القرص بتاع سيرفرك قرّب يمتلئ، بصفر تكلفة وبأقل من 30 سطر Python. مش محتاج خبرة DevOps ولا سيرفر إضافي.

اعمل بوت تيليجرام يبعتلك تنبيهات السيرفر بـ Python

كود Python على شاشة لابتوب لبناء بوت تيليجرام يبعت تنبيهات السيرفر

المشكلة باختصار

أغلب المشاريع الصغيرة بتكتشف الأعطال متأخر. القرص بيمتلئ، الـ database بتقف عن الكتابة، والموقع بيرجّع أخطاء. انت بتعرف لمّا عميل يشتكي، يعني بعد ساعة أو ساعتين من بداية المشكلة.

الحل التقليدي خدمات مراقبة مدفوعة أو رسائل SMS. بس للمشروع اللي لسه بادئ، ده تعقيد وتكلفة قبل وقتهم. تيليجرام بيحل ده مجانًا: عندك API رسمي بسيط، والرسالة بتوصل على موبايلك في ثانية.

إيه هو البوت أصلًا؟ (مثال أولًا)

تخيّل إن عندك صاحب بيشتغل بوّاب في عمارة. انت اللي بتقوله: "لو حد دخل بعد منتصف الليل، اتصل بيا". هو مش بياخد قرارات لوحده، بس عنده رقم تليفون ثابت وبينفّذ التعليمة اللي اتفقتوا عليها. بوت تيليجرام بالظبط كده: حساب ليه "رقم" ثابت اسمه token، وانت اللي بتبرمجه يبعتلك رسالة لمّا يحصل شرط معين.

علميًا: البوت حساب تيليجرام بيتحكم فيه برنامج بدل إنسان، عبر واجهة برمجية اسمها Bot API. البرنامج بيكلّم سيرفرات تيليجرام بطلبات HTTP عادية (GET و POST) ويبعت رسائل لأي محادثة عنده صلاحية الوصول ليها.

الخطوات: من الصفر لأول رسالة

  1. افتح تيليجرام ودوّر على BotFather (الحساب الرسمي بعلامة التوثيق الزرقا).
  2. ابعتله الأمر /newbot، اختار اسم واسم مستخدم ينتهي بـ bot.
  3. هيرجّعلك token بالشكل ده: 123456789:AAH...xyz. ده مفتاح التحكم، خبّيه كويس.
  4. ابعت أي رسالة للبوت بتاعك من حسابك الشخصي (لازم تبدأ المحادثة الأول).
  5. هات الـ chat_id بتاعك من الأمر ده في الترمينال:
Bash
# بدّل TOKEN بالـ token اللي جالك من BotFather
curl "https://api.telegram.org/botTOKEN/getUpdates"
# دوّر في النتيجة على: "chat":{"id":987654321 ...}
# الرقم ده هو chat_id بتاعك
أسطر كود برمجية تمثل سكربت مراقبة تلقائي يفحص مساحة القرص

الكود: بوت تنبيهات حقيقي

دلوقتي عندك حاجتين: الـ token والـ chat_id. الكود ده بيعمل دالة بسيطة بتبعت رسالة، وبعدين بيستخدمها في فحص مساحة القرص.

Python
import requests
import shutil

TOKEN = "123456789:AAH...xyz"   # من BotFather
CHAT_ID = "987654321"           # من getUpdates

def send_alert(text):
    url = f"https://api.telegram.org/bot{TOKEN}/sendMessage"
    payload = {"chat_id": CHAT_ID, "text": text}
    r = requests.post(url, data=payload, timeout=10)
    r.raise_for_status()
    return r.json()

def check_disk(path="/", threshold=85):
    total, used, free = shutil.disk_usage(path)
    percent = used / total * 100
    if percent >= threshold:
        gb_free = free / (1024 ** 3)
        send_alert(
            f"تحذير: القرص على {path} وصل {percent:.0f}% "
            f"(المتبقي {gb_free:.1f} جيجا)"
        )

if __name__ == "__main__":
    check_disk()

جرّبه يدويًا الأول علشان تتأكد إنه شغّال. نزّل قيمة threshold مؤقتًا لـ 1 وشغّل السكربت، المفروض توصلك رسالة على طول. لو وصلت، رجّعها لـ 85 وانت مطمئن.

خلّيه يشتغل لوحده كل ربع ساعة

السكربت دلوقتي بيتشغّل مرة وبس. علشان يفحص باستمرار، استخدم cron على لينكس. افتح crontab -e وضيف السطر ده:

Bash
# يفحص القرص كل 15 دقيقة
*/15 * * * * /usr/bin/python3 /opt/alerts/disk_alert.py

كده انت عملت أوتوميشن كامل: السكربت بيفحص، ولو في مشكلة بيبعت، ولو كله تمام بيفضل ساكت. ده بالظبط السلوك اللي عايزه — تنبيه عند الحاجة بس.

لوحة مراقبة تعرض استخدام موارد السيرفر لإطلاق تنبيهات تيليجرام

الأرقام والتكلفة

Bot API مجاني بالكامل. حد الإرسال الرسمي حوالي 30 رسالة في الثانية، و20 رسالة في الدقيقة للمجموعة الواحدة — أكتر بكتير من احتياج أي تنبيهات سيرفر عادية. زمن وصول الرسالة عمليًا أقل من ثانية. قارن ده بـ SMS عبر مزود زي Twilio بتكلفة تقريبية 0.0075 دولار للرسالة؛ لو بتبعت 200 تنبيه في الشهر، ده فرق بين صفر و18 دولار سنويًا على حاجة واحدة صغيرة. في فريق صغير على VPS واحد، التنبيه الفوري ده بيقلّل وقت اكتشاف العطل من ساعتين لأقل من دقيقة.

trade-offs لازم تنتبه لها

  • الاعتماد على تيليجرام: لو تيليجرام محجوب في بلدك أو عند سيرفرك، التنبيه مش هيوصل. بتكسب البساطة والمجانية، بتخسر ضمان الوصول في كل الشبكات.
  • أمان الـ token: أي حد يوصل للـ token يقدر يبعت باسم البوت. متحطهوش في الكود مباشرة في مشروع حقيقي؛ حطّه في متغير بيئة os.environ["TG_TOKEN"].
  • مفيش تصعيد: الرسالة بتوصل وخلاص. لو انت نايم، محدّش هيصحّيك. ده تنبيه، مش نظام on-call.

متى لا تستخدم هذه الطريقة

لو عندك نظام إنتاجي حرج بيتطلب ضمان وصول التنبيه وتصعيد تلقائي لو محدش رد (acknowledgement)، الطريقة دي مش كافية. وقتها روح لأدوات زي PagerDuty أو Opsgenie اللي بتعمل اتصال صوتي وتدوير على المناوبين. كمان لو عندك مئات الخدمات، استخدم Prometheus مع Alertmanager بدل سكربتات متفرقة. الفرضية هنا إن عندك سيرفر أو اتنين وفريق صغير، والهدف تنبيه سريع رخيص مش SLA رسمي.

الخطوة التالية

افتح BotFather دلوقتي واعمل بوت، وشغّل سكربت الـ check_disk بـ threshold=1 علشان تتأكد إن الرسالة بتوصل. أول ما توصلك، ضيف فحص تاني بسيط: استخدام الـ RAM عبر قراءة /proc/meminfo، وابعت لنفسك تنبيه لو عدّى 90%. كل فحص جديد مجرد دالة بتنادي send_alert.

المصادر

  • توثيق Telegram Bot API الرسمي: https://core.telegram.org/bots/api — تفاصيل sendMessage وgetUpdates وحدود الإرسال.
  • دليل BotFather الرسمي: https://core.telegram.org/bots#how-do-i-create-a-bot — خطوات إنشاء البوت والحصول على الـ token.
  • توثيق Python shutil.disk_usage: https://docs.python.org/3/library/shutil.html#shutil.disk_usage.
  • توثيق مكتبة requests: https://requests.readthedocs.io.
  • توثيق crontab على لينكس: https://man7.org/linux/man-pages/man5/crontab.5.html.

هل استفدت من المقال؟

اطّلع على المزيد من المقالات والدروس المجانية من نفس المسار المعرفي.

تصفّح المدونة