🤖HermesBlog
Hermes Feature Guides · جزء 168/9/2026

Script-Only Cron Jobs: Automate Without Burning Tokens

Script-Only Cron Jobs — easy-to-understand guide based on official docs

guide-cron-script-only

مهام Cron النصية فقط: أتمتة دون حرق الرموز

إذا كنت قد جرّبت مهام Hermes المجدولة (cron jobs)، فأنت تعلم بالفعل مدى قوتها. لكن إليك سؤال: ماذا لو لم تكن بحاجة إلى نموذج لغوي ضخم (LLM) ليفكّر — بل تحتاج فقط إلى شيء يعمل وفق جدول زمني ويخبرك بما حدث؟

هنا يأتي دور مهام cron النصية فقط. اعتبرها طبقة الأتمتة البسيطة الخالية من الزخارف: نفس المجدول، نفس التوصيل، وصفر رموز LLM مستهلكة.

متى يجب استخدام مهام Cron النصية فقط؟

تتألق المهام النصية فقط عندما يُنتج السكربت نفسه الرسالة المطلوبة بالضبط. لا حاجة للتفكير، ولا حاجة للتلخيص. فقط مخرجات نقية وحتمية.

إليك حالات الاستخدام الكلاسيكية:

  • تنبيهات الذاكرة – سكربتك يفحص استخدام الرام ويُخرج “الذاكرة عند 92%”
  • تحذيرات مساحة القرص – نفس الفكرة، بمقياس مختلف
  • نبضات القلب – خدمتك لا تزال تعمل، وإليك الدليل
  • أي مراقبة حيث يعرف السكربت الإجابة – إذا كان هناك خلل، فليقل ذلك؛ وإذا كان كل شيء على ما يرام، فليصمت

الجمال؟ تحصل على موثوقية السكربت مع قوة توصيل Hermes. لا تكاليف رموز، لا زمن استجابة، لا تأخير “دعني أفكر في هذا”.

كيفية إعداد واحدة

أسهل طريقة؟ فقط اطلب من Hermes في المحادثة. أداة cronjob ذكية بما يكفي لتعرف متى تستخدم no_agent=True. ستكتب السكربت لك وتجهّز كل شيء.

لكن إذا كنت تريد القيام بذلك يدويًا، فإليك النمط:

/cron add "every 1h" "This prompt won't be used" --script ~/.hermes/scripts/my-check.py --name "My monitor" --deliver telegram

انتظر، هذا الطلب يبدو غريبًا. دعني أوضح.

السكربت هو المتحدث

مع مهام cron النصية فقط، يصبح مخرج السكربت (stdout) هو الرسالة. لا يوجد LLM في المنتصف. لذا يجب أن يُخرج سكربتك بالضبط ما تريد توصيله.

إليك مثال بسيط:

#!/usr/bin/env python3
import shutil

total, used, free = shutil.disk_usage("/")
percent = used / total * 100

if percent > 90:
    print(f"⚠️ Disk at {percent:.1f}% — clean up now!")
else:
    print("[SILENT]")

أترى [SILENT] في النهاية؟ هذه هي علامة الصمت السحرية. عندما يرى Hermes [SILENT] في المخرجات، لا يرسل أي شيء. سكربتك هو من يقرر ما يستحق إزعاجك به.

خدعة [SILENT]

هذه هي الميزة القاتلة لسكربتات المراقبة. بدلاً من تلقي إشعار كل ساعة بـ“كل شيء جيد”، لن تسمع من Hermes إلا عندما يحتاج شيء ما إلى انتباهك فعلاً.

منطق سكربتك:

  • تم اكتشاف مشكلة؟ اطبع رسالة التنبيه
  • كل شيء على ما يرام؟ اطبع [SILENT]

يتولى Hermes الباقي. لا إشعارات خلال ساعات الهدوء، لا إرهاق من الإشعارات، لا “لماذا تهتز هاتفي في الثالثة فجرًا بسبب خادم سليم؟”

النصي فقط مقابل hermes send

هناك خيار آخر بدون رموز يستحق المعرفة: hermes send. استخدمه عندما يكون لديك سكربت يعمل بالفعل في مكان ما — خطوة CI، خطاف ما بعد الالتزام، سكربت نشر — وتريد فقط توجيه المخرجات إلى Telegram أو Discord.

./my-deploy-script.sh | hermes send --channel telegram

الفرق؟ مهام cron النصية فقط مخصصة لفحوصات متكررة ومجدولة. أما hermes send فهو للحظات اللقطة الواحدة عندما يقرر سكربتك أن وقت التحدث قد حان.

مثال من العالم الحقيقي: مراقب تغييرات المواقع

دعنا نجمع كل شيء معًا. إليك سكربت يراقب صفحة ويب ولا يتحدث إلا عندما يتغير شيء:

import hashlib, json, os, urllib.request

URL = "https://example.com/pricing"
STATE_FILE = os.path.expanduser("~/.hermes/scripts/.watch-state.json")

content = urllib.request.urlopen(URL, timeout=30).read().decode()
current_hash = hashlib.sha256(content.encode()).hexdigest()

prev_hash = None
if os.path.exists(STATE_FILE):
    with open(STATE_FILE) as f:
        prev_hash = json.load(f).get("hash")

with open(STATE_FILE, "w") as f:
    json.dump({"hash": current_hash}, f)

if prev_hash and prev_hash != current_hash:
    print(f"CHANGE DETECTED on {URL}")
    print(f"Previous hash: {prev_hash}")
    print(f"Current hash: {current_hash}")
    print(f"\nFirst 2000 chars:\n{content[:2000]}")
else:
    print("[SILENT]")

قم بإعداده باستخدام:

/cron add "every 1h" "unused" --script ~/.hermes/scripts/watch-site.py --name "Pricing monitor" --deliver telegram

السكربت يجلب الصفحة، ويقارن التجزئات (hashes)، ولا يتحدث إلا عندما يكون هناك شيء مختلف. لا رموز LLM، لا ضوضاء، فقط أتمتة خالصة.

الخلاصة

مهام cron النصية فقط هي حصان العمل في الأتمتة بدون رموز. إنها مثالية لـ:

  • الفحوصات الحتمية حيث تكون الإجابة ثنائية (نعم/لا)
  • المراقبة عالية التكرار حيث تتضاعف تكاليف LLM
  • أي شيء تثق فيه بحكم السكربت بدلاً من تفسير LLM

وأفضل جزء؟ ليس عليك الاختيار بين المهام النصية فقط والمهام المدعومة بـ LLM. اخلطها في نفس سير العمل. استخدم السكربتات للفحوصات الميكانيكية، ودع LLM يتعامل مع الأمور المثيرة للاهتمام — مثل تلخيص لماذا هذا التغيير في الموقع مهم.

تريد التعمق أكثر؟ تحقق من وثائق cron الكاملة أو درس بوت الموجز اليومي لرؤية الجانب المدعوم بـ LLM.

📖 التوثيق الرسمي

この記事は Hermes Agent のالتوثيق الرسميに基づいています:التوثيق الرسمي › guides/automate-with-cron