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?)

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top