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...
Fährnisse des Buildprozesses unter Windows
17.07.2019
Nachdem ich begonnen hatte, mich mit der Beschleunigung der Berechnung des Mandelbrot-Fraktals unter Zuhilfenahme der Shadereinheiten in Graphikkarten zu beschäftigen und erste Erfolge feiern konnte, wollte ich das mal auf einer richtigen Graphikkarte ausprobieren...
Weiterlesen...Android Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Git(lab|hub) Go GUI Gui Hardware Java Jupyter Komponenten Links Linux Markdown Markup Music Numerik PKI-X.509-CA Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
Ich bin heute nochmal inspiriert worden, weiter über die Trojan Source Vulnerability nachzudenken. Meiner Meinung nach bestehen hier noch Probleme - speziell bei Nutzereingaben oder Daten, die über externe Schnittstellen ampfangen werden.
Weiterlesen...Ich habe die auf OpenStreetMap basierende OpenSource Navigationslösung Graphhopper in einen Docker-Container gepackt und als neuestes Mitglied in meinem Docker-Zoo willkommen geheißen.
Weiterlesen...Ich habe neulich über eine Möglichkeit berichtet, SQLite mittels der sQLshell und Beanshell-Skripten um SQL-Funktionen zu erweitern. In diesem Artikel versprach ich auch, über eine solche Möglichkeit für Aggregatfunktionen zu berichten.
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, muß 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 GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.