Molto spesso abbiamo la necessità di eseguire un comando, o uno script con un intervallo di tempo ben preciso, ad esempio, una settimana un’ora ecc.. per far ciò esiste un demone (forse alcuni non sapevano nemmeno esistesse): cron.
Il demone cron viene attivato ogni minuto, e legge dai file di configurazione tutte le impostazioni che abbiamo impostato (scusate il gioco di parole!), se trova qualche riga che si deve eseguire nel minuto in cui si è attivato il demone la esegue.. analizziamo come funziona un cronjob.
Il metodo più semplice per installare un cronjob è creare uno script bash, perl ecc… che esegue tutti i comandi che abbiamo intenzione di eseguire, e tale file dev’essere inserito in una di queste directory:
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
per poter essere eseguito in intervalli di tempo di: ore, giorni, settimane e mesi.
Se vogliamo usare intervalli di tempo diversi da quelli standard (tranquilli è possibile!) ci sono due modi, o usare la directory /etc/cron.d o il file /etc/crontab
In ogni file che andiamo a rendere eseguibile è possibile inserire di tutto (commenti, righe vuote, variabili ecc…). Ora andiamo a vedere la vera configurazione di un cronjob.
Il formato base di un cronjob è questo: 1 2 3 4 5 utente comando analizziamo il codice:
Comando: è il comando da eseguire
Utente: è il proprietario che esegue il cron (root, o nomi d’utente)
1: rappresenta i minuti, i valori vanno da 0 a 59
2: rappresenta le ore, da 0 a 23
3: rappresenta i giorni di un mese, da 1 a 31
4: rappresenta i mesi, da 1 a 12 (più nomi in lettere)
5: rappresenta i giorni della settimana, da 0 a 7 (piu’ i nomi in lettere, 0 e 7 rappresentano entrambi la Domenica)
Qualche esempio di codice:
# Con questo codice esegue il comando ogni 3 minuti, solo il 13 di ogni mese, ed il proprietario è root
*/3 * 13 * * root echo "Hola"
# Con questo codice esegue il comando alle 8:00 di mattina ogni giorno, ed il proprietario è root
0 8 * * * root echo "Hola"
# Con questo codice esegue il comando ogni minuto, ed il proprietario è test
* * * * * test /usr/bin/mousepad
Per installare un crontab da root:
/usr/bin/crontab /home/user/test.cron
Per aggiungere altri comandi senza eliminare i vecchi:
/usr/bin/crontab -e
Per eliminare i crontab inseriti:
/usr/bin/crontab -r
Bene, la guida è finita, se avete domande postate un commento qui, grazie