🤖HermesBlog
Hermes Feature Guides · Teil 168/9/2026

Nur-Skript-Cron-Jobs: Automatisieren, ohne Tokens zu verbrennen

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

guide-cron-script-only

Nur-Skript-Cron-Jobs: Automatisieren, ohne Tokens zu verbrennen

Wenn du schon mit Hermes-Cron-Jobs gespielt hast, weißt du bereits, wie mächtig sie sind. Aber hier ist eine Frage: Was, wenn du kein LLM zum Nachdenken brauchst – sondern nur etwas, das nach Zeitplan läuft und dir sagt, was passiert ist?

Genau hier kommen Nur-Skript-Cron-Jobs ins Spiel. Stell sie dir als deine schnörkellose Automatisierungsebene vor: gleicher Scheduler, gleiche Zustellung, null LLM-Tokens verbraucht.

Wann solltest du Nur-Skript-Cron-Jobs verwenden?

Nur-Skript-Jobs glänzen, wenn das Skript selbst bereits die exakte Nachricht erzeugt, die du sehen willst. Kein Denken nötig, keine Zusammenfassung erforderlich. Nur pure, deterministische Ausgabe.

Hier sind die klassischen Anwendungsfälle:

  • Speicherwarnungen – dein Skript prüft die RAM-Auslastung und gibt „Speicher bei 92 %“ aus
  • Festplattenwarnungen – gleiche Idee, andere Kennzahl
  • Heartbeats – dein Dienst lebt noch, hier ist der Beweis
  • Jedes Monitoring, bei dem das Skript die Antwort kennt – wenn etwas kaputt ist, sag es; wenn alles gut ist, bleib still

Das Schöne daran? Du bekommst die Zuverlässigkeit eines Skripts mit der Zustellkraft von Hermes. Keine Tokenskosten, keine Latenz, kein „lass mich kurz darüber nachdenken“-Verzögerung.

So richtest du einen ein

Der einfachste Weg? Frag einfach Hermes im Chat. Das cronjob-Tool ist schlau genug zu wissen, wann es no_agent=True verwenden soll. Es schreibt das Skript für dich und richtet alles ein.

Aber wenn du es manuell machen willst, hier ist das Muster:

/cron add "every 1h" "Dieser Prompt wird nicht verwendet" --script ~/.hermes/scripts/my-check.py --name "Mein Monitor" --deliver telegram

Moment, dieser Prompt sieht komisch aus. Lass mich das erklären.

Das Skript übernimmt das Reden

Bei Nur-Skript-Cron-Jobs wird die Standardausgabe des Skripts zur Nachricht. Kein LLM dazwischen. Dein Skript muss also genau das ausgeben, was zugestellt werden soll.

Hier ist ein einfaches Beispiel:

#!/usr/bin/env python3
import shutil

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

if percent > 90:
    print(f"⚠️ Festplatte bei {percent:.1f}% – jetzt aufräumen!")
else:
    print("[SILENT]")

Siehst du das [SILENT] am Ende? Das ist der magische Ruhe-Marker. Wenn Hermes [SILENT] in der Ausgabe sieht, sendet es nichts. Dein Skript entscheidet, was es wert ist, dich zu stören.

Der [SILENT]-Trick

Das ist das Killer-Feature für Monitoring-Skripte. Statt jede Stunde mit „alles gut“ gepingt zu werden, hörst du nur von Hermes, wenn tatsächlich etwas Aufmerksamkeit braucht.

Deine Skript-Logik:

  • Problem erkannt? Gib die Alarmmeldung aus
  • Alles klar? Gib [SILENT] aus

Hermes übernimmt den Rest. Keine Benachrichtigungen während ruhiger Zeiten, keine Benachrichtigungs-Müdigkeit, kein „warum vibriert mein Telefon um 3 Uhr morgens wegen eines gesunden Servers?“

Nur-Skript vs. hermes send

Es gibt noch eine weitere Null-Token-Option, die du kennen solltest: hermes send. Verwende sie, wenn du ein Skript hast, das bereits irgendwo läuft – ein CI-Schritt, ein Post-Commit-Hook, ein Deploy-Skript – und du die Ausgabe einfach an Telegram oder Discord weiterleiten willst.

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

Der Unterschied? Nur-Skript-Cron-Jobs sind für wiederkehrende, geplante Prüfungen. hermes send ist für einmalige Momente, wenn dein Skript entscheidet, dass es Zeit zum Reden ist.

Praxisbeispiel: Website-Änderungs-Monitor

Lass uns alles zusammenfügen. Hier ist ein Skript, das eine Webseite beobachtet und nur dann etwas sagt, wenn sich etwas ändert:

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"ÄNDERUNG ERKANNT auf {URL}")
    print(f"Vorheriger Hash: {prev_hash}")
    print(f"Aktueller Hash: {current_hash}")
    print(f"\nErste 2000 Zeichen:\n{content[:2000]}")
else:
    print("[SILENT]")

Richte es ein mit:

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

Das Skript ruft die Seite ab, vergleicht Hashes und meldet sich nur, wenn sich etwas geändert hat. Keine LLM-Tokens, kein Rauschen, nur pure Automatisierung.

Das Fazit

Nur-Skript-Cron-Jobs sind dein Null-Token-Automatisierungs-Arbeitstier. Sie sind perfekt für:

  • Deterministische Prüfungen, bei denen die Antwort binär ist
  • Hochfrequentes Monitoring, bei dem LLM-Kosten sich summieren würden
  • Alles, bei dem du dem Urteil des Skripts mehr vertraust als der Interpretation eines LLMs

Und das Beste daran? Du musst dich nicht zwischen Nur-Skript- und LLM-gestützten Jobs entscheiden. Mische sie im selben Workflow. Verwende Skripte für die mechanischen Prüfungen und lass das LLM die interessanten Dinge übernehmen – wie das Zusammenfassen, warum diese Website-Änderung wichtig ist.

Willst du tiefer eintauchen? Schau dir die vollständige Cron-Dokumentation oder das Tutorial zum Tagesbriefing-Bot an, um die LLM-gestützte Seite zu sehen.

📖 Offizielle Dokumentation

この記事は Hermes Agent のOffizielle Dokumentationに基づいています:Offizielle Dokumentation › guides/automate-with-cron