an folgendem Vorhaben bin ich bis jetzt gescheitert: ich will
ein script alle 5 Stunden laufen lassen. Also so, daß es um
5:00 Uhr, dann um 10:00, 15:00, 20:00 und dann, darauf kommt’s
an, um 01:00, 06:00, usw. ausgeführt wird. Damit will ich
erreichen, daß es mal an allen Uhrzeiten „vorbeikommt“. Der
Crontab steht jetzt auf:
0 */5 * * *
In der Manpage steht dazu
Step values can be used in conjunction with ranges. Following a
range with ``/'' specifies skips of the number's value
through the range. For example, ``0-23/2'' can be used in the hours
field to specify command execution every other hour (the alternative
in the V7 standard is ``0,2,4,6,8,10,12,14,16,18,20,22''). Steps are
also permitted after an asterisk, so if you want to say ``every two
hours'', just use ``\*/2''.
*/5 ist eine Abkürzung für 0,5,10,15,20
Was du vor hast ist nur mit einem Crontab-Eintrag nicht (direkt) möglich. Bei dem was du vor hast, haben die vergangenen Einträge Einfluss darauf wie zukünftige ausgeführt werden… Um das ganze eindeutig zu machen, müsstes du schon mal definieren, zu welchem Tag auf 0 Uhr das ausgeführt werden würden.
Mir würde da nur als Lösungsmöglichkeit einfallen, einen Cronjob für jede Stunde auszuführen, der ein Skript startet, dass testet, ob gerade der Befehl ausgeführt werden soll. Außer du definierst jetzt für jedem Tag im Jahr, wie das ausgeführt werden soll.
Wofür soll das ganze eigentlich gut sein? Kannst du dein Skript nicht jeden Tag zur selben Uhrzeit ausführen: Bei alle 6 Stunden geht dies einfach, sonst musst du die einzelnen Uhrzeiten auflisten.