Terminplaner mittels Shell-Skript

vorhergehende Artikel in: Linux
07.07.2013

Heutzutage in der vernetzten Welt kommt niemand mehr auf die Idee, einen Terminkalender aus Papier mit sich herumzutragen - alles muß elektronisch passieren. Es gibt aber auch andere Lösungen, als einen Outlook-Server zu installieren oder persönliche Daten in die Cloud auszulagern.

Ich habe mich in der Vergangenheit hin und wieder geärgert, wenn mir Termine durch die Lappen gegangen sind. Das sollte sich ändern - allerdings wollte ich mit der Cloud nichts zu schaffen haben und mir lediglich zum Zwecke der Terminerinnerung einen Groupware-Server aufzusetzen, kam auch nicht in Frage.

Daher setzte ich mich zunächst hin - ein guter Bekannter pflegt zu sagen: "Erst muß der Plan fertig sein!" - und definierte meine Ansprüche an eine elektronische Terminerinnerung:

  1. Sie sollte schlank sein - kein Server, keine Datenbank oder ähnliches
  2. Beim Login sollte jeden Tag geprüft werden, welche Termine an diesem Tag anliegen; werden welche gefunden, soll eine EMail an mich versendet werden.
  3. Beim zweiten oder dritten Login soll diese Prüfung nicht mehr stattfinden, um EMail-Doubletten zu vermeiden
Lassen sich diese Anforderungen erfüllen? Erstaunlicherweise ja - mittels eines Linux-Shell-Skriptes.

Zunächst testet das Skript, ob die Datei .ensure_mail_sent_once im Homeverzeichnis des Nutzers vom aktuellen Tag stammt. Ist das der Fall, beendet es sich sofort. Das verhindert mehrmaliges Senden der Mails bei mehrmaligem Login an ein und demselben Tag.

Anschließend werden aus dem aktuellen Datum Jahr, Monat, Tag und Wochentag extrahiert. Darüber hinaus wird abhängig von Monat und Tag noch ein Flag gesetzt, das anzeigt, ob das aktuelle Datum das Ende des Monats bezeichnet.

Anschließend werden abhängig von den extrahierten Informationen Aktionen ausgeführt - im Beispiel werde ich daran erinnert, daß ich zum Comic-Buchladen gehen und die neuesten Ausgaben abholen muß.

Als letztes schließlich wird das Modifikationsdatum der Datei .ensure_mail_sent_once auf den aktuellen Tag gesetzt, um wiederholtes Ausführen innerhalb eines Tages zu verhindern.

Wer dieses Skript ebenfalls einsetzen möchte, muß dazu lediglich die Referenzen auf das Homeverzeichnis durch das eigene ersetzen.

Lizenz
sentMails

Artikel, die hierher verlinken

Todo.txt

18.10.2015

Todo.txt style="max-width:256px;" Beim ziellosen Browsen im Internet bin ich über Todo.txt gestolpert, das mir aus verschiedensten Gründen sofort aus dem Herzen gesprochen hat.

Scheduler mittels Shell-Skript

23.11.2014

In einem früheren Artikel beschrieb ich einen leichtgewichtigen Terminkalender, der nichts anderes tat, als EMails zu versenden. Ich habe diese Idee aufgegriffen und ein wenig erweitert - nun startet die Lösung beliebige Tasks zu definierten Zeitpunkten

Skript genau einmal pro Tag starten

16.08.2014

Ich suchte nach einer Möglichkeit, Shell-Skripts (Bash) einmal am Tage laufen zu lassen - auch wenn der Rechner zwischendurch ausgeschaltet wurde, durfte das Skript nicht nochmals loslaufen. In einem bereits veröffentlichten Artikel wurde eine Lösung bereits implizit vorgestellt. Hier nochmale eine Gegenüberstellung von zwei möglichen Lösungen:

Alle Artikel rss Wochenübersicht Monatsübersicht Codeberg Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Multi-User-WebDAV, Docker, GitHub

    17.11.2019

    Nachdem ich mich in letzter Zeit verstärkt mit Docker und dem zugehörigen Ökosystem beschäftige, habe ich begonnen, verschiedenste Dienste in Containern zu testen um zu sehen, ob in manchen Fällen LXC oder KVM nicht doch die bessere Wahl wäre...

    Weiterlesen...

Neueste Artikel

  • Migration der Webseite und aller OpenSource Projekte

    In eigener Sache...

    Weiterlesen...
  • AutoHideToolbar für Java Swing

    Ich habe eine neue Java Swing Komponente erstellt: Es handelt sich um einen Wrapper für von JToolBar abgeleitete Klassen, die die Werkzeugleiste minimieren und sie nur dann einblenden, wenn der Mauszeiger über ihnen schwebt.

    Weiterlesen...
  • Integration von EBMap4D in die sQLshell

    Ich habe bereits in einem früheren Artikel über meine ersten Erfolge berichtet, der sQLshell auf Basis des bestehenden Codes aus dem Projekt EBMap4D eine bessere Integration für Geo-Daten zu spendieren und entsprechende Abfragen, bzw. deren Ergebnisse auf einer Kartenansicht zu visualisieren.

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen Codeberg-Repositories findet man hier.