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
Ich habe den Aufgabenbereich weiter gefasst: die Lösung sollte mich nicht mehr nur an Termine per EMail erinnern, sie sollte vielmehr auch Aufgaben selbstständig abarbeiten. Cron konnte ich dazu nicht benutzen, da man damit einmalige Aufgaben nur für maxinmal ein Jahr im voraus einplanen kann.
Ich setzte mich also wieder hin - ein guter Bekannter pflegt zu sagen: "Erst muß der Plan fertig sein!" - und definierte meine Ansprüche erneut:
Am Anfang des Skriptes wird das Datenverzeichnis festgelegt
Zunächst testet das Skript, ob eine Datei .
Anschließend wird im Datenverzeichnis nach Verzeichnissen gesucht, die entweder das aktuelle Jahr oder "forever" als Namen tragen. Falls solche Verzeichnisse gefunden werden, wird in sie gewechselt.
Im Jahresverzeichnis wird nach Verzeichnissen gesucht, die entweder die Nummer des aktuellen Monats (immer zweistellig, gegebenenfalls links mit 0 aufgefüllt) oder "forever" als Namen tragen. Falls solche Verzeichnisse gefunden werden, wird in sie gewechselt.
Im Monatsverzeichnis wird nach Verzeichnissen gesucht, die entweder die Nummer des aktuellen Tages im Monat (immer zweistellig, gegebenenfalls links mit 0 aufgefüllt) oder "forever" als Namen tragen. Falls solche Verzeichnisse gefunden werden, wird in sie gewechselt.
Im Tagesverzeichnis wird nach Dateien gesucht, die ausführbar sind. Werden solche gefunden, wird das aktuelle Verzeichnis auf das Tagesverzeichnis gesetzt und die gefundene Datei ausgeführt. Dabei werden für eine Datei namens XY die Ausgaben auf stdout in XY.output und die Ausgaben auf stderr in XY.error umgeleitet
Als letztes schließlich wird das Modifikationsdatum der Datei .
Wer dieses Skript ebenfalls einsetzen möchte, muß dazu lediglich das Datenverzeichnis am Beginn des Skripts geeignet definieren.
13.07.2015
Nachdem ich vor einiger Zeit eine eigene, proprietäre Lösung vorgestellt habe, Benachrichtigungen oder Alarme für beliebig weit in der Zukunft liegende Ereignisse zuverlässig auszulösen, fand ich jetzt die Komplettlösung...
Keycloak, OTP, FIDO
11.06.2021
Ich berichtete neulich über die Installation und erste Tests von Keycloak. Nun bin ich tiefer eingetaucht und habe die diversen Möglichkeiten untersucht, die Authentifizierung mittels zweiten Faktors sicherer zu machen.
WeiterlesenAI und ML Android Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Go GUI Hardware Java Jupyter JupyterBinder Komponenten Links Linux Markdown Markup Music Numerik OpenSource PKI-X.509-CA Präsentationen Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
In meinem letzten Artikel zum Thema dWb+ beschrieb ich ein neues Feature der Lösung - nunmehr wende ich mich einer wichtigen nichtfunktionalen Anforderung zu
WeiterlesenEin weiteres Self-Hosting-Experiment hat zu zwei neuen Diensten in meinem Docker-Zoo geführt...
WeiterlesenNach meinen Erfolgen mit einem TPM in der Version 1.2 zur Absicherung von SSH-Verbindungen wollte ich versuchen, seine Funktionalität in Java-Anwendungen zu integrieren...
WeiterlesenManche 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.