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.
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.