Hi, gibt es eine Möglichkeit einen Zeitlich driftenden Cron-Job anzulegen? Ich bräuchte das um die Zeitliche Auflösung einer Statistischen Datenerassung zu vergrößern. Beispeil "*/15 * * Irgendwascmd" läuft zu jeder Viertel Stunde. d.h. meine Daten haben auch nur eine Auflösung von 15 Minuten Intervallen. Die Häufigkeit der Datenerfassung soll aber ansich nicht großartig verändert werden. 16:00 Datensatz 1 16:15 Datensatz 2 16:30 Datensatz 3 usw ... beim nächsten Durchlauf soll die Ausführung um eine Minute verschoben werden und folgendermaßen aussehen: 16:01 Datensatz 1 16:16 Datensatz 2 16:31 Datensatz 3 usw ... noch einen Tag später hätte ich dann gerne wieder eine Minute oben drauf 16:02 Datensatz 1 16:17 Datensatz 2 16:32 Datensatz 3 usw ... Geht das mit Cron Bordmitteln oder muss ich mir ein scipt bauen, dass den Task noch X Minuten bis zur Ausführung pausiert?
Direkt mit cron geht es wohl nicht, aber das "sleep" kann mit in die crontab. Ich würde folgendes Konstrukt vorschlagen.
1 | */15 * * * * sleep $(expr $(date +%s) / 86400 % 15); Irgenswascmd |
Also die Unix-Zeit als Sekunden in Tage umrechnen und modulo 15 nehmen. Das gibt einen täglich wachsenden Wert von 0 bis 14.
Mit dem klassischen Vixie cron gehts nicht direkt, dafür aber mit mcron. Nur sollte man keine Scheu vor Scheme (Lisp) haben.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.