Entrambi cron
e anacron
sono demoni che possono pianificare l'esecuzione di attività ricorrenti fino a un certo momento definito dall'utente.
La differenza principale tra cron
e anacron
è che il primo presuppone che il sistema funzioni continuamente. Se il sistema è spento e durante questo periodo è stato pianificato un lavoro, il lavoro non verrà mai eseguito.
D'altro canto anacron
è "anacronistico" ed è progettato per sistemi che non funzionano 24x7. Per farlo funzionare anacron
usa file con data e ora per scoprire quando sono stati eseguiti i suoi ultimi comandi. Mantiene anche un file /etc/anacrontab
proprio come cron
fa. Inoltre, cron.daily
esegue anacron ogni giorno. Quindi, anacron
può eseguire un lavoro solo una volta al giorno, ma cron
può essere eseguito tutte le volte che ogni minuto.
Da man anacrontab
:
Quando eseguito, Anacron legge un elenco di lavori da un file di configurazione, normalmente / etc / anacrontab (vedi anacrontab (5)). Questo file contiene l'elenco dei lavori controllati da Anacron. Ogni voce di lavoro specifica un periodo in giorni, un ritardo in minuti, un identificativo univoco del lavoro e un comando shell.
Per ogni lavoro, Anacron controlla se questo lavoro è stato eseguito negli ultimi n giorni, dove n è il periodo specificato per quel lavoro. In caso contrario, Anacron esegue il comando shell del lavoro, dopo aver atteso il numero di minuti specificato come parametro di ritardo.
Una volta terminato il comando, Anacron registra la data in un file di data e ora speciale per quel lavoro, in modo da sapere quando eseguirlo di nuovo. Per i calcoli dell'ora viene utilizzata solo la data. L'ora non è utilizzata.
Ciò significa che se un'attività è pianificata per essere eseguita quotidianamente e il computer è stato spento durante quel periodo, quando viene eseguito anacron, può vedere che l'ultima attività è stata eseguita più di 24 ore fa ed eseguire l'attività correttamente.
Ad esempio, se si specifica quanto segue in /etc/anacrontab
:
7 15 test.daily /bin/sh /home/username/script.sh
e il giorno in cui il script.sh
lavoro dovrebbe essere eseguito, se il sistema non è in esecuzione, anacron
verrà eseguito i script.sh
15 minuti dopo il riavvio del sistema.
Pochi riferimenti: