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