Alle oneven waarden specificeren in crontab?

In crontab kan ik een asterisk gebruiken om elke waarde aan te duiden, of “*/2” om elke even waarde aan te duiden.

Is er een manier om elke onevenwaarde op te geven? (Zou zoiets als “1+*/2” werken?)


Antwoord 1, autoriteit 100%

Afhankelijk van uw versie van cron, zou u in staat moeten zijn om (bijvoorbeeld urenlang):

  1-23/2

Afgaande op de sectie EXTENSIONS in de manpagina van crontab(5):

  Ranges can include "steps", so "1-9/2" is the same as "1,3,5,7,9".

Voor een meer draagbare oplossing, vermoed ik dat je gewoon de eenvoudige lijst moet gebruiken:

  1,3,5,7,9,11,13,15,17,19,21,23

Maar het is misschien makkelijker om je commando in een shellscript te stoppen dat onmiddellijk wordt afgesloten als het niet binnen een oneven minuut wordt aangeroepen.


Antwoord 2, autoriteit 77%

Elke oneven minuut zou zijn:

1-59/2 * * * * 

Elke even minuut zou zijn:

0-58/2 * * * * 

Antwoord 3, autoriteit 4%

Probeer

1-23/2

Vanuit je vraag ga ik uit van Vixie Cron. Ik betwijfel of dit zal werken met een andere cron.


Antwoord 4, autoriteit 3%

Als ik de handleiding lees, zou “1-23/2” (voor uren) voldoende zijn.


Antwoord 5, autoriteit 2%

Ik realiseer me dat dit bijna 10 jaar oud is, maar ik had moeite om 1-23/2 te krijgen voor een baan van twee uur, een oneven uur.

Voor alle gebruikers waar exacteoneven uurprecisie niet nodig is. Ik deed het volgende wat geschikt was voor mijn teams.

59 */2 * * *

Voer de taak om de twee uur uit, op de 59e minuut.


Antwoord 6

Werkt op Cronie
Zelfs met een interval van 5 minuten, bijvoorbeeld

3-58/5 * * * * /home/test/bin/do_some_thing_every_five_minute

Other episodes