[BASH] Befehl nur einmal am Tag ausführen in einem alle 5 Minuten ausgeführten Skript

brenner

Commander
Registriert
Apr. 2002
Beiträge
3.030
Ich habe ein Bash Skript welches alle 5 Minuten von einer externen Quelle ausgeführt wird.

Ich möchte den Werte einer Variablen einmal täglich (irgendwann zwischen 23-24Uhr) in eine Textdatei exportieren, aber eben nur einmal täglich, nicht alle 5 Minuten.


Wie kann ich das bewerkstelligen?
 
Lass das Bash-Script diesen Wert einfach ständig in eine Datei schreiben. Die liest du per cron einmal am Tag aus.
 
Ich hatte auf eine schöne Lösung gehofft. Ständig schreiben lassen oder so eine dumme Antwort wie die von Maybrit die nichts mit der Frage zu tun hat und eine Scriptauslagerung benötigt ist unschön.
 
Naja, wenn es dir so wichtig ist, check doch die Tageszeit bei jedem Durchlauf und in dem entsprechenden Abschnitt, wo exportiert werden soll, prüfst du, ob die Datei schon geschrieben wurde. Außerhalb der Zeit löschst du die Datei, wenn sie rumliegt.
 
brenner schrieb:
Ich hatte auf eine schöne Lösung gehofft. Ständig schreiben lassen oder so eine dumme Antwort wie die von Maybrit die nichts mit der Frage zu tun hat und eine Scriptauslagerung benötigt ist unschön.

Nicht meine Antwort ist dumm, sondern ganz offensichtlich du. :lol:
 
einmal täglich ne textdatei aktualisieren
Code:
if [ "$((`stat --format %Y textdatei`+60*60*24))" -lt "`date +%s`" ]
then
    mach was neues > textdatei
fi

wie man prüft obs gerade 23-24 Uhr ist überlasse ich dir...

das finden des bugs der dazu führt daß ab und an ein tag übersprungen wird auch... :)
 
Zurück
Oben