Web Hosting Logo
Login
Novità:
Il tuo hosting professionale da 25 anni ha una nuova gestione! WebHosting.it è adesso parte di SupportHost

Linux, comando cron

Il comando cron in Unix/Linux viene utilizzato per eseguire automaticamente comandi o script a intervalli specifici.  Cron appartiene a quella categoria che in informatica viene definita “demoni”: un demone è un programma che si esegue in background e non richiede intervento diretto dell’utente. 

Usando questo comando si possono programmare l’esecuzione di altri comandi nel sistema. Le automazioni create tramite cron si chiamano cron jobs.

Server Dedicati Gestiti su WebHosting.it

Sintassi di Cron

Per utilizzare il comando cron, è necessario modificare il file di configurazione del proprio utente, che si chiama crontab. È possibile accedere al file digitando crontab -e

Una volta entrati in crontab la sintassi da utilizzare, come nell’esempio in basso, richiede di specificare quale comando vogliamo che si imposti in automatico, in che giorni della settimana, quali mesi, giorni del mese, ore e minuti. Si può impostare così qualsiasi automazione: tutti i giorni alla stessa ora, una volta all’anno, una volta a settimana, una volta al mese…semplicemente inserendo i numeri corrispondenti.

Prova gratis e senza impegno uno dei nostri piani hosting per 14 giorni. Non è richiesto nessun dato di pagamento!

Prova gratis

Una volta programmato, cron si attiva ogni minuto, leggendo i dati nel crontab per sapere se è il momento di seguire una operazione programmata.

* * * * * command_to_run

- - - - -

| | | | |

| | | | ----- Day of week (0 - 7) (Sunday = both 0 and 7)

| | | ------- Month (1 - 12)

| | --------- Day of month (1 - 31)

| ----------- Hour (0 - 23)

------------- Minute (0 - 59)

Alcune Opzioni di Cron

l comando cron in Unix/Linux ha le seguenti opzioni:

opzione -f (f sta per foreground) permette di utilizzare cron non in background ma in foreground, cioè facendolo funzionare solo finché è lasciato aperto dall’utente e non in modo automatico da “demone”, in questo modo si può terminare l’azione di cron.

cron -f

opzione -u (u sta per user) può essere usato per specificare l’esecuzione di comandi su utenti specifici. Se non si specifica nessun nome utente, il comando viene eseguito sull’utente corrente.

cron-u

opzione-l (l sta per lista) serve per mostrare una lista dei cron jobs dell’utente, può essere combinato con -u per mostrare i cron impostati da altri utenti

cron-l

opzione -r (remove) permette di cancellare tutti i cron jobs impostati per l’utente corrente o da un utente specifico, combinando con -u

cron -r

Alcuni esempi pratici di cron

Facciamo l’esempio di voler realizzare la copia di file chiamato “Articolo1” ogni settimana, automaticamente, in una cartella di backup.

La sintassi generica sarebbe:

0 0 * * 1 cp /path/to/Articolo1 /path/to/backup/Articolo1_$(date +\%Y-\%m-\%d)

Questo comando utilizza la data corrente come parte del nome del file di backup. Il comando cp copia il file "Articolo1" dalla sua posizione originale alla posizione di backup. La stringa 0 0 * * 1 indica che il comando deve essere eseguito ogni settimana, il primo giorno della settimana (lunedì), alla mezzanotte (0 ore 0 minuti).

Adesso facciamo finta che ogni giorno 2 del mese, articolo uno deve cambiare di proprietario, spostato all’utente Admin.

0 0 1 * * sudo chown -R admin:admin /path/to/file_or_directory

Questo comando cambierà il proprietario e il gruppo di tutti i file in /path/to/file_or_directory a "admin" e "admin", utilizzando il comando chown con l'opzione -R per cambiare ricorsivamente il proprietario di tutti i file e sottodirectory. La stringa 0 0 1 * * indica che il comando deve essere eseguito ogni mese, il primo giorno del mese (1), alla mezzanotte (0 ore 0 minuti).

Problemi ricorrenti con l’uso di cron

Cron è un comando molto utile che permette di automatizzare ad esempio la gestione dei server, tuttavia ci sono degli errori nei quali si può incorrere se non si utilizza correttamente.

Problemi di dipendenze: i compiti pianificati da cron possono dipendere da altri programmi o risorse sul sistema. Se una dipendenza non è disponibile, il compito pianificato potrebbe non essere in grado di funzionare.

Debugging: non è facile o immediato capire perché a volte un cron job non si esegue come pianificato.

Prova gratis e senza impegno uno dei nostri piani hosting per 14 giorni. Non è richiesto nessun dato di pagamento!

Prova gratis

Conflitti: se più compiti pianificati da cron eseguono operazioni simultanee sullo stesso file o risorsa, potrebbero verificarsi conflitti e problemi di integrità dei dati.

Ovviamente molti di questi problemi si prevedono con un occhio accurato, quasi maniacale, alla sintassi dei comandi, per questo è consigliabile fare sempre dei backup dei file, soprattutto se ancora si è alle prime armi con l’uso di cron.

Server Dedicati Gestiti su WebHosting.it

Ivan Messina
ivan
Con oltre 10 anni di esperienza nel web hosting, lavora ogni giorno per migliorare il servizio e riservare attenzione a ogni singolo cliente.
Web Hosting Footer Image