Nur-Skript-Cron-Jobs: Automatisieren, ohne Tokens zu verbrennen
Script-Only Cron Jobs — easy-to-understand guide based on official docs
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