[Guida] Cron e Anacron: programmare job periodici su GNU/Linux
Una delle caratteristiche essenziali dei sistemi operativi, soprattutto in ambito server, è la possibilità di eseguire automaticamente delle istruzioni, a intervalli temporali ben definiti. Nelle distribuzioni GNU/Linux esistono due possibilità per realizzare queste procedure: cron ed anacron.
Cron ed Anacron: il job scheduling su GNU/Linux
Cron, e l’omonimo demone di sistema, permette l’esecuzione periodica di operazioni come backup o aggiornamenti. È stato concepito per tutte quelle situazioni in cui la macchina rimane accesa senza soluzione di continuità. Il servizio controlla due file: /etc/crontab dove sono conservate tutte le operazioni periodiche, e /etc/cron.d/ in cui i pacchetti installati inseriscono i loro job.
Possiamo analizzare la struttura del file di configurazione, dando il seguente comando:
cat /etc/crontab
Una descrizione completa di questo file è consultabile alla pagina 5 di man cron:
- Le righe # sono commenti;
- Poi abbiamo due variabili;
- Le ultime quattro istruzioni sono le azioni da eseguire, composte da vari campi separati da spazi.
I primi cinque campi indicano la periodicità temporale,infine l’ultimo indica l’azione vera e propria. Ad esempio in questo pc possiamo notare che c’è un job che viene eseguito quotidianamente alle 6:25 e uno da eseguire a cadenza settimanale alle 6:47. Le istruzioni sono contenute in /etc/cron.daily, /etc/cron.weekly e /etc/cron.mothly, ove presenti. Ricordiamo che solo l’amministratore di sistema ha i privilegi per modificare crontab. Gli utenti possono creare il proprio scheduler dando il comando crontab -e, che al primo avvio chiederà anche quale editor utilizzare tra nano, vi o emacs. In questo caso i file verranno salvati in /var/spool/cron/crontabs.
Anacron
Anacron è sicuramente più vicino alle esigenze degli utenti desktop, il cui pc, nella maggior parte dei casi, non rimane acceso h24. La sua peculiarità è che quando esegue le operazioni periodiche, controlla anche se queste non sono state avviate, poiché magari la macchina era spenta.
Analogamente possiamo osservare il contenuto del relativo file di configurazione, dando il comando cat /etc/anacrontab l’output sarà analogo al seguente:
SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin HOME=/root LOGNAME=root START_HOURS_RANGE=6-23 @daily 42 example.daily /bin/bash /home/alessandro/bin/backup.sh 1 10 cron.daily run-parts --report /etc/cron.daily @weekly 10 cron.weekly run-parts --report /etc/cron.weekly @monthly 15 cron.monthly run-parts --report /etc/cron.monthly
Le variabili HOME e LOGNAME indicano la directory e l’utente per cui vengono eseguite le operazioni periodiche. Utile anche START_HOURS_RANGE che indica la fascia oraria di avvio dei job. Analizziamo ora le righe contenenti le azioni:
- il primo campo indica la periodicità, notiamo che non si può indicare l’orario preciso;
- il secondo campo serve a non far sovrapporre l’esecuzione automatica degli script.
Osserviamo l’esempio del primo job periodico programmato. Anacron controlla se lo script di backup è stato eseguito nel periodo indicato, leggendo l’ora dell’ultima esecuzione nel file /var/spool/anacron. In caso negativo, perché magari il pc era spento, prima di eseguirlo attenderà 42 minuti.
Tutti i dettagli sul suo funzionamento sono consultabili mediante man anacron.
Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.
Fonte: https://www.lffl.org/2020/03/cron-anacron-job-periodici-linux.html
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.