CrontabNei sistemi operativi Unix e Unix-like, il comando Generalmente, I file crontabI file crontab contengono la lista dei job e altre istruzioni per il demone di cron. Gli utenti possono avere dei file crontab individuali e spesso ci sono dei file crontab a livello di sistema (solitamente in Ogni linea di un file crontab segue un formato particolare, composta da una serie di campi separati da spazi o tabulazioni. I campi possono avere un solo valore o una serie di valori. OperatoriEsistono diversi modi per specificare valori multipli in un campo:
Esiste anche un operatore supportato da alcune versioni estese del CampiI primi cinque campi su ogni riga specificano con che frequenza e quando eseguire un comando. # .---------------- [m]inute: minuto (0 - 59) # | .------------- [h]our: ora (0 - 23) # | | .---------- [d]ay of month: giorno del mese (1 - 31) # | | | .------- [mon]th: mese (1 - 12) OPPURE jan,feb,mar,apr... # | | | | .---- [w]eek day: giorno della settimana (0 - 6) (domenica=0 o 7) # | | | | | OPPURE sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * comando da eseguire Note:
Il sesto campo e i successivi (ossia, il resto della linea) specificano il comando da eseguire. EsempiCrontab per utente adm su un sistema AIX#================================================================= # GENERAZIONE RAPPORTI ATTIVITA' DI SISTEMA # Tra le 8 e le 17 un rapporto ogni 20 minuti nei giorni feriali. # Un rapporto ogni ora di sabato e domenica. # Tra le 18 e le 7 un rapporto ogni ora nei giorni feriali. # Genera un riassunto alle 18:05 di ogni giorno feriale. #================================================================= 0,20,40 8-17 * * 1-5 /usr/lib/sa/sa1 1200 3 & 0 * * * 0,6 /usr/lib/sa/sa1 & 0 18-7 * * 1-5 /usr/lib/sa/sa1 & 5 18 * * 1-5 /usr/lib/sa/sa2 -s 8:00 -e 18:01 -i 3600 -ubcwyaq Errori ricorrenti#Preparazione al cambio d'ora legale/solare 59 1 1-7 4 0 /root/shift_my_times.sh Ad una prima occhiata si potrebbe pensare che questa linea di configurazione prepari il lancio dello script Diversamente dagli altri campi, il terzo e il quinto vengono valutati con un'operazione OR se nel terzo sono presenti valori numerici espliciti - mentre con un'operazione AND se sono presenti solo operatori Il codice corretto sarebbe: #Preparazione al cambio d'ora legale/solare 59 1 1-7 4/12 ? /root/shift_my_times.sh Un altro errore comune è quello di inserire caratteri #Errore 1 2 3 4 5 touch ~/errore_`date "+%Y%m%d"`.txt #Corretto 1 2 3 4 5 touch ~/corretto_`date +\%Y\%m\%d`.txt In questo esempio il carattere * * * * * cat - % trascorso un minuto
Un altro errore ancora è di non andare a capo dopo l'ultima riga ("carriage return"). In questo caso l'ultima riga non viene considerata. Valori non standardMolti sviluppatori tendono a pianificare delle operazioni di notte, tempo in cui i sistemi ovviamente sono meno usati. In quanto umani però non distribuiscono uniformemente le operazioni nel tempo disponibile, quindi molte operazioni iniziano contemporaneamente, rendendo meno efficiente lo sfruttamento del sistema. Infatti, si tende spesso ad usare orari "tondi" (minuto 0: le 23:00, mezzanotte ecc.), mezze ore (minuto: 30) o generalizzando, multipli del quarto d'ora o di 10 minuti; raramente si pensa di avviare un'operazione alle 04:08. Per ovviare a ciò, l'implementazione di cron del sistema Jenkins permette di usare il simbolo speciale "H" che permette di delegare alla macchina la decisione del valore numerico, per meglio distribuire nel tempo le operazioni. Si può anche specificare un intervallo, ad esempio: # H H(1-4) * * * comando da eseguire esegui ogni giorno in un minuto qualsiasi tra l'una e le quattro. L'orario non viene ricalcolato ad ogni esecuzione: scelta l'ora per la prima esecuzione in modo automatico, ogni riesecuzione avverrà sempre alla medesima ora[senza fonte]. Disabilitare l'Email di notificaSe i comandi eseguiti da crontab producono output, normalmente il demone
>/dev/null 2>&1
MAILTO="" Voci correlate
Collegamenti esterni
|