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/crontabUna 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.
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.monthlyLe 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.
Leggi il contenuto originale su Linux Freedom