Specificare & # 8220; tutti i valori dispari & # 8221; in crontab?
Domanda
In crontab, posso usare un asterisco per indicare ogni valore, oppure " * / 2 " per indicare ogni valore pari.
C'è un modo per specificare ogni valore dispari ? (Funzionerebbe qualcosa come " 1 + * / 2 " lavoro?)
Soluzione
A seconda della versione di cron, dovresti essere in grado di farlo (per ore, diciamo):
1-23/2
Passando alla sezione EXTENSIONS nella manpage crontab (5):
Ranges can include "steps", so "1-9/2" is the same as "1,3,5,7,9".
Per una soluzione più portatile, ho il sospetto che tu debba solo usare il semplice elenco:
1,3,5,7,9,11,13,15,17,19,21,23
Ma potrebbe essere più semplice racchiudere il tuo comando in uno script shell che uscirà immediatamente se non viene chiamato in un minuto dispari.
Altri suggerimenti
Ogni minuto dispari sarebbe:
1-59/2 * * * *
Ogni minuto pari sarebbe:
0-58/2 * * * *
Prova
1-23/2
Dalla tua domanda, presumo che Vixie Cron. Dubito che funzionerà con qualsiasi altro cron.
Mentre leggo il manuale "1-23 / 2" (per ore) farebbe il trucco.
Funziona su Cronie Anche con un intervallo di 5 minuti, ad esempio
3-58/5 * * * * /home/test/bin/do_some_thing_every_five_minute
Mi rendo conto che ha quasi 10 anni, ma ho avuto problemi a trovare 1-23 / 2 per un lavoro ogni due ore e un'ora dispari.
Per tutti gli utenti in cui non è necessaria la esatta precisione dell'ora dispari. Ho fatto quanto segue adatto alle esigenze dei miei team.
59 */2 * * *
Esegui il lavoro ogni due ore, al 59 ° minuto.