Utilizzo del servizio di scheduling Cron: differenze tra le versioni

m
Riga 168: Riga 168:
'''Attenzione.'''<br/>
'''Attenzione.'''<br/>
Poiché i giorni possono essere specificati sia nel terzo che nel quinto campo e nel caso in cui questi due campi abbiano entrambi un valore diverso dall'asterisco, il demone Cron lancia il comando quando i campi corrispondono alla data corrente e in maniera indipendente l'uno dall'altro. In questo caso, dunque, verrà eseguito il comando sia negli specificati giorni del mese sia nei giorni specificati della settimana.<br/>
Poiché i giorni possono essere specificati sia nel terzo che nel quinto campo e nel caso in cui questi due campi abbiano entrambi un valore diverso dall'asterisco, il demone Cron lancia il comando quando i campi corrispondono alla data corrente e in maniera indipendente l'uno dall'altro. In questo caso, dunque, verrà eseguito il comando sia negli specificati giorni del mese sia nei giorni specificati della settimana.<br/>
Quindi l'esempio precedente non porta al risultato di lanciare il comando solo nei primi quindici giorni di ogni mese quando il giorno è venerdì, ma al risultato di lanciare il comando nei primi quindici giorni di ciascun mese e ogni venerdì di ogni settimana dell'anno.<br/>
Quindi l'esempio precedente non porta al risultato di lanciare il comando solo nei primi quindici giorni di ogni mese quando il giorno è venerdì, ma al risultato di lanciare il comando nei primi quindici giorni di ciascun mese e anche ogni venerdì di ogni settimana dell'anno.


Se si vuole ottenere il risultato di lanciare un comando in un particolare giorno della settimana solo se questo coincide con un giorno del mese o se appartiene a un intervallo di giorni del mese, bisogna eseguire un test separato sulla data. Il test può essere fatto sia all'interno di <code>crontab</code>, sia all'interno di uno script lanciato da crontab.
Se si vuole ottenere il risultato di lanciare un comando in un particolare giorno della settimana solo se questo coincide con un giorno del mese o se appartiene a un intervallo di giorni del mese, bisogna eseguire un test separato sulla data. Il test può essere fatto sia all'interno di <code>crontab</code>, sia all'interno di uno script lanciato da <code>crontab</code>.


* Esempio 10
Questo è un esempio che mostra come eseguire un comando solo alla mezzanotte della prima domenica di ogni mese:
Questo è un esempio che mostra come eseguire un comando solo alla mezzanotte della prima domenica di ogni mese:
<pre>
<pre>
00 00 1-7 * * [ $(/bin/date '+\%u') -eq 7 ] && /comando/da/eseguire
00 00 1-7 * * [ $(/bin/date '+\%u') -eq 7 ] && /comando/da/eseguire
</pre>
</pre>
''notare l'escape del carattere '%'''.<br/>
* Esempio 11
Consultare la manpage del comando '''date''' per ottenere informazioni sul suo funzionamento e sulle opzioni che mette a disposizione.
Quest'altro esempio mostra come eseguire un comando alle 20,00 nei giorni che vanno dal 5 al 10 dei ogni mese e solo se questi giorni corrispondono a martedì o venerdì:
<pre>
00 20 5-10 * * [ $(/bin/date '+\%u') -eq 2 -o $(/bin/date '+\%u') -eq 5 ] && /comando/da/eseguire
</pre>
''notare in entrambi i casi l'uso dell'escape del carattere '%'''.<br/>
Consultare le manpages dei comandi '''date''' e '''test''' per ottenere informazioni sul loro funzionamento.


===Stringhe speciali===
===Stringhe speciali===
6 999

contributi