Schnipsel du jour: chronic

Geschätzte Lesezeit: 1 Minute

Mit chronic habe ich eine nützliche kleine Entdeckung für mich gemacht, die ich unbedingt mit euch teilen möchte.

Auf einem meiner Serverlein habe ich Backup per restic eingerichtet. Ohne weitere Konfiguration schickt der Cronjob pflichtgetreu jedes Mal eine E-Mail. Das ist unnötig, so lange alles gut läuft – aber über ein fehlgeschlagenes Backup würde ich natürlich gerne informiert werden. Ich war zu faul, das Ganze in einen Wrapper zu packen, und überlegte, ob das nicht auch irgendwie einfacher ginge.

Und an der Stelle kommt chronic ins Spiel – denn das ist genau das, wozu es gedacht ist.

chronic - runs a command quietly unless it fails

Unter Debian ist es im Paket moreutils enthalten.

apt install moreutils

Statt also in der crontab mit >/dev/null 2>&1 zu hantieren (was ich ohnehin nicht leiden kann) habe ich nun eine, die ungefähr so aussieht:

MAILTO="me@example.com"
RESTIC="/usr/bin/restic -r /path/to/resticrepo -p /path/to/.repo_password --verbose=2"

# m h  dom mon dow   command
1 */8 * * *   chronic $RESTIC backup /home/me /etc /root
47 2 * * 4    chronic $RESTIC forget --keep-last 12 --keep-daily 7 --keep-weekly 5 --keep-monthly 12 --prune
7 4 * * 0     chronic $RESTIC check

So lasse ich mir offen, an welcher Stelle ich es nutzen möchte und wo gegebenenfalls nicht. Die Jobs selbst können nun auf recht verbose geschaltet werden – denn ich erhalte ja nur dann Output, wenn etwas schief geht (AKA exit nonzero oder Crash). Dann erhalte ich aber auch einen hinreichend aussagekräftigen Output, mit dem ich direkt arbeiten kann! Mittels chronic -ve kann ich, wenn nötig, debuggen.

Perfekt für mich.

Manchmal sind es Kleinigkeiten 🙂


Ich habe zu viel Grundwissen vorausgesetzt, etwas missverständlich formuliert oder gar ganz ausgelassen?
Artikel in diesem Bereich kannst du überarbeiten und ergänzen!
→ Hier geht es zum öffentlichen Repository... ←