All'inizio del mio viaggio in Linux, ho imparato ad apprezzare le numerose utilità della riga di comando del sistema operativo e il modo in cui semplificavano le attività regolari. Ad esempio, il backup delle applicazioni sul mio server Windows richiedeva spesso costosi pacchetti software aggiuntivi. Al contrario, il tar
command rende il backup di Linux relativamente facile ed è anche potente e affidabile.
Quando ho eseguito il backup del nostro sistema di posta elettronica del distretto scolastico, tuttavia, ho dovuto affrontare una sfida diversa. Non è stato possibile eseguire backup durante la giornata lavorativa o in prima serata perché le persone stavano utilizzando il sistema. Il backup doveva avvenire dopo la mezzanotte e doveva essere affidabile. Ero abituato a Task Manager di Windows, ma cosa avrei usato su Linux? È stato allora che ho imparato a conoscere cron.
Pianificazione delle attività su Linux con cron
Cron è un demone utilizzato per eseguire automaticamente i comandi pianificati. Imparare a usare cron ha richiesto un po' di lettura e sperimentazione, ma presto ho usato cron per spegnere il nostro server di posta elettronica, eseguire il backup dei dati in un file tar compresso, quindi riavviare il servizio di posta elettronica alle 3 del mattino.
I comandi per un lavoro cron sono memorizzati nel file crontab su un sistema Linux, che di solito si trova in /etc/crontab. Visualizza il contenuto del tuo file crontab con $ crontab -l
.
Modifica il file crontab con $ crontab -e
.
Alcuni sistemi utilizzano per impostazione predefinita l'editor Vi per la modifica di cron. Puoi sovrascrivere questa impostazione utilizzando le variabili di ambiente:
$ EDITOR=nano crontab -e
Ciò ti consente di utilizzare il nano editor per modificare il tuo crontab personale (se non ne hai ancora uno, uno viene creato automaticamente per te).
Tutti i comandi crontab hanno parametri indicati da un asterisco finché non si inserisce un valore intero. Il primo rappresenta i minuti, poi le ore, il giorno del mese, il mese dell'anno e infine il giorno della settimana.
I commenti sono preceduti da un hash. Cron ignora i commenti, quindi sono un ottimo modo per lasciare note su cosa fa un comando e perché è importante.
Un esempio di lavoro cron
Supponiamo di voler scansionare la tua home directory alla ricerca di virus e malware con clamscan ogni settimana il lunedì alle 10:00. Vuoi anche eseguire il backup della tua home directory ogni settimana il martedì alle 9:00. L'utilizzo dei file cron e crontab assicura che la manutenzione del sistema avvenga ogni settimana, indipendentemente dal fatto che ti ricordi di eseguire tali utilità o meno.
Modifica il tuo file crontab per includere quanto segue, usando il tuo nome utente invece di "don" (il mio nome utente):
# Scan my home directory for viruses
0 10 * * 1 clamscan -ir /home/don
# Backup my home directory
0 9 * * 2 tar -zcf /var/backups/home.tgz /home/don
Se stai utilizzando l'editor nano, salva il tuo lavoro con Ctrl+O per scrivere il file e Ctrl+X per uscire dall'editor. Dopo aver modificato il file, usa crontab -l
per elencare il contenuto del tuo file cron per assicurarti che sia stato salvato correttamente.
Puoi creare lavori crontab per qualsiasi lavoro richiesto sul tuo sistema. Questo sfrutta appieno il demone cron.
Pianificazione dalla riga di comando di Linux
Non è un segreto che la parte più difficile di cron è trovare i valori giusti per quegli asterischi iniziali. Esistono siti Web, come crontab.guru, che traducono dinamicamente il tempo di cron in traduzioni leggibili dall'uomo e Opensource.com ha un cheat sheet di cron che puoi scaricare per aiutarti a mantenerlo corretto.
Inoltre, la maggior parte dei moderni sistemi cron presenta collegamenti a valori comuni, tra cui:
@hourly
:Esegui una volta all'ora (0 * * * *)@daily
:Esegui una volta al giorno (0 0 * * *)@weekly
:Esegui una volta alla settimana (0 0 * * 0)@monthly
:Esegui una volta al mese (0 0 1 * *)@reboot
:esegui una volta dopo il riavvio
Esistono anche alternative a cron, incluso anacron per i lavori che desideri eseguire regolarmente ma non secondo una pianificazione specifica e il at
comando per lavori una tantum.
Cron è un utile sistema di pianificazione delle attività ed è facile da usare come la modifica del testo. Provalo!