Nome servizio
anacron
Cron contro Anacron
Simile al servizio cron, il servizio anacron esegue applicazioni o script in orari e date specifici. Ciò consente un funzionamento affidabile del sistema non presidiato – gli eventi programmati non vengono persi se il sistema si interrompe – invece, vengono eseguiti il prima possibile dopo l'orario programmato. I candidati per un'azione anacron sono spesso attività di amministrazione del sistema, come la rotazione dei log, che devono essere eseguite, anche se in ritardo.
A differenza del servizio cron, anacron non perderà l'esecuzione di un lavoro pianificato, anche se il sistema è spento. L'attività verrà eseguita quando il sistema sarà nuovamente disponibile. Ciò rende anacron la scelta preferita per avviare attività essenziali di amministrazione del sistema come il backup o il ripristino dello spazio su disco.
I lavori sono generalmente divisi in tre classi:giornaliera, settimanale e mensile. Gli script di controllo sono normali righe di comando della shell e sono inseriti nella directory /etc/cron.[class]. Anacron garantisce che ogni lavoro venga eseguito all'intervallo pianificato; non è garantito un tempo specifico per l'esecuzione di questi lavori. Ogni volta che il lavoro viene eseguito, il file timestamp /var/spool/anacron/cron.[class] viene aggiornato. Questo file timestamp è anche lo stesso meccanismo utilizzato da anacron per determinare se i lavori devono essere eseguiti.
Controllo del servizio
Per gestire il servizio anacron su futuri riavvii e arresti, utilizzare lo strumento chkconfig:
# chkconfig anacron on
# chkconfig --list anacron anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# chkconfig anacron off
Per controllare immediatamente il servizio anacron, utilizzare il comando service:
# service anacron Usage: /etc/init.d/anacron {start|stop|restart|condrestart|status}
La tabella seguente descrive ogni comando disponibile:
Comando | Descrizione |
---|---|
inizio | Richiamare il demone anacron(8) e fornire l'opzione della riga di comando "-s". Ciò costringe anacron(8) a eseguire tutte le applicazioni pianificate e gli script in serie invece di avviarli tutti in parallelo. |
fermati | Termina il demone anacron(8). Eventuali applicazioni o script attivi non sono interessati e continuano a essere eseguiti fino al completamento. |
riavvia | Equivalente a uno stop e poi a un comando di avvio. |
condrestart | Ignorato se il servizio anacron non è attualmente in esecuzione, altrimenti equivale a un comando di riavvio. Tipicamente utilizzato dagli aggiornamenti RPM per evitare l'avvio involontario del servizio. |
stato | Visualizza "anacron è interrotto" a meno che il demone non stia eseguendo attivamente applicazioni o script pianificati. |
Come verificare se anacron è in esecuzione
Si noti che il comportamento non standard del comando status non può essere utilizzato per determinare se anacron è stato eseguito dall'ultimo avvio del sistema. Usa invece il timestamp dei file in /var/spool/anacron directory. Questi file vengono toccati quando si verifica l'evento corrispondente:
# ls -lrt /var/spool/anacron total 12 -rw-------. 1 root root 9 Jul 27 03:12 cron.monthly -rw-------. 1 root root 9 Aug 18 03:10 cron.weekly -rw-------. 1 root root 9 Aug 18 04:09 cron.daily
L'output di cui sopra indica che l'ultimo evento mensile anacron si è verificato alle 03:12 del 27 luglio.
Configurazione del servizio
Per ottenere il servizio anacron, insieme al suo demone e ai relativi file di controllo, installa il pacchetto anacron:
# yum install cronie-anacron.x86_64
Gli eventi che anacron riconosce sono definiti in /etc/anacrontab file. Il file predefinito è mostrato di seguito:
# cat /etc/anacrontab SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # Events are defined below 1 65 cron.daily run-parts /etc/cron.daily 7 70 cron.weekly run-parts /etc/cron.weekly 30 75 cron.monthly run-parts /etc/cron.monthly
Le righe con sintassi VAR=VALUE assegnano valori all'ambiente shell passati agli script e alle applicazioni eseguite quando si verifica un evento. Ogni demone anacron non ha eventi cablati. Invece, gli eventi sono definiti esplicitamente nel file /etc/anacrontab. Per impostazione predefinita, gli eventi sono definiti ogni uno, sette e trenta giorni. Il formato di una definizione di evento è:
[days] [delay] [job_id] [command] [[arg] ...]
Ecco,
giorni :definisce la frequenza con cui il [comando] deve essere eseguito, in giorni.
ritardo :il numero di minuti del giorno dell'evento prima che il [comando] venga invocato.
job_id :identifica il lavoro anacron nei file di registro e viene utilizzato per denominare il file timestamp creato in /var/spool/anacron