Bash mit Zeitabfrage?
Moin moin
Folgendes habe ich vor, ich stehe nur komplett auf dem Schlauch wie ich das umsetzen soll.
Ich möchte via bash täglich unterschiedliche Befehle ausführen.
Dabei möchte ich dem server via cronjob sagen das er den bash ausführen soll.
Folgendes soll der Skript machen:
Zu einer gewissen Uhrzeit einen Befehl ausführen, dieser startet einen service und beendet einen anderen service.
Leider weiß ich nicht wie ich diesen Skript aufbauen soll.
Es handelt sich um ca 20 Befehle pro Tag, diese Befehle sind täglich anders.
Ja ich könnte es über nen cronjob machen (mache ich aktuell), das wird mir aber zu unübersichtlich. Da ich regelmäßig die Befehle anpasse wird es mittlerweile auch natürlich etwas mühselig. Außerdem finde ich es persönlich angenehmer 7 Dateien zu haben die ich separat ändern kann und mit einem Fehler nicht die gesamten cronjob zu torpedieren.
Vllt kann mir hier jemand einen Denkanstoß geben für meine Spielerei
Es handelt sich um einen Server auf Linux 10 Debian
2 Antworten
Mit dem Cronjob legst du nur den Zeitpunkt fest, zu welchem das Skript startet, aber das weißt du ja schon.
Es handelt sich um ca 20 Befehle pro Tag, diese Befehle sind täglich anders.
Dafür bedienst du dich der üblichen Werkzeuge »if« und »case«. Das Skript läuft zu der im Cronjob bestimmten Uhrzeit los, prüft, ob die Voraussetzung zur Ausführung des jeweiligen Befehls gegeben ist und führt ihn gegebenenfalls aus.
Ansonsten kannst du in einem Skript auch Unterskripte aufrufen. Für den Cronjob könntest du also ein Skript schreiben, welches nur die sieben anderen Skripte aufruft. Damit ein fehlerhaftes Skript nicht die anderen blockiert, setzt du ans Ende jeden Aufrufs ein &. Damit wird das Skript in einem Hintergrundprozess gestartet, und sofort danach das nächste aufgerufen.
Du kannst dem Cronjob auch sagen, dass er Script XY ausführen muss. Die Scripts kannst du an einem zentralen Ort abspeichern und dort jeweils bearbeiten.
DAS ist ja der Plan
Ich möchte meinen Cron schlanker machen und das quasi auslagern