GNU/Linux >> Linux Esercitazione >  >> Linux

Cron Vs Anacron:come configurare Anacron su Linux (con un esempio)

Anacron è il cron per desktop e laptop.

Anacron non si aspetta che il sistema funzioni 24 x 7 come un server.

Quando vuoi che un lavoro in background venga eseguito automaticamente su una macchina che non è in esecuzione 24 x 7, dovresti usare anacron.

Ad esempio, se hai uno script di backup programmato ogni giorno alle 23:00 come un normale processo cron e se il tuo laptop non è attivo alle 23:00, il tuo processo di backup non verrà eseguito.

Tuttavia, se hai lo stesso lavoro pianificato in anacron, puoi essere certo che verrà eseguito una volta che il laptop sarà ripristinato.

Formato Anacrontab

Proprio come cron ha /etc/crontab, anacron ha /etc/anacrontab.

Il file /etc/anacrontab ha i lavori anacron menzionati nel seguente formato.

period   delay   job-identifier   command

Il campo 1 è Periodo di ricorrenza: Questo è un valore numerico che specifica il numero di giorni.

  • 1 – ogni giorno
  • 7 – settimanale
  • 30 – mensile
  • N – Può essere qualsiasi valore numerico. N indica il numero di giorni

Nota:puoi anche utilizzare "@mensile" per un lavoro che deve essere eseguito mensilmente.

Il campo 2 è in ritardo: Indica il ritardo in minuti. cioè il numero X di minuti che anacron deve attendere prima di eseguire il lavoro dopo l'avvio della macchina.

Il campo 3 è Identificatore lavoro: È il nome del file timestamp del lavoro. Dovrebbe essere unico per ogni lavoro. Questo sarà disponibile come file nella directory /var/spool/anacron. Questo file conterrà una singola riga che indica l'ultima volta in cui questo lavoro è stato eseguito.

# ls -1 /var/spool/anacron/
test.daily
cron.daily
cron.monthly
cron.weekly

# cat /var/spool/anacron/test.daily
20110507

Il campo 4 è il comando: Comando o script di shell che deve essere eseguito.

Proprio come gli script di shell, i commenti all'interno del file anacrontab iniziano con #

Nota: Per il formato di file /etc/crontab, fare riferimento al nostro articolo Linux Crontab:15 Awesome Cron Job Examples.

Esempio Anacron

L'esempio seguente esegue lo script /home/sathiya/backup.sh una volta ogni 7 giorni.

Il giorno in cui dovrebbe essere eseguito il processo backup.sh, se il sistema è inattivo per qualche motivo, anacron eseguirà lo script backup.sh 15 minuti dopo il ripristino del sistema (senza dover attendere altri 7 giorni).

# cat /etc/anacrontab
7       15      test.daily      /bin/sh /home/sathiya/backup.sh

START_HOURS_RANGE e RANDOM_DELAY

L'esempio sopra indica che lo script backup.sh deve essere eseguito ogni giorno, con un ritardo di 15 minuti. cioè quando il laptop è stato avviato, eseguito solo dopo 15 minuti.

Cosa succede quando il laptop o il desktop non sono stati spenti? Quando viene eseguito il lavoro? Questo è specificato dalla variabile di ambiente START_HOURS_RANGE nel file /etc/anacrontab.

Per impostazione predefinita, questo è impostato su 3-22 nel file. Indica l'intervallo di tempo dalle 3:00 alle 22:00

# grep START /etc/anacrontab
START_HOURS_RANGE=3-22

Oltre al ritardo definito dall'utente specificato nel 2° campo del file /etc/anacrontab, anacron aggiunge anche casualmente x numero di minuti. La x è definita dalla variabile RANDOM_DELAY nel file /etc/anacrontab.

Per impostazione predefinita, questo è impostato su 45 nel file. Ciò significa che anacron aggiungerà x minuti (selezionati casualmente tra 0 e 45) e lo aggiungerà al ritardo definito dall'utente.

# grep RANDOM /etc/anacrontab
RANDOM_DELAY=45

Cron contro Anacron

Cron e anacron hanno i suoi vantaggi e svantaggi. A seconda delle tue esigenze, usane uno.

Cron Anacron
La granularità minima è minuto (ovvero i lavori possono essere programmati per essere eseguiti ogni minuto) La granularità minima è solo in giorni
Il processo Cron può essere pianificato da qualsiasi utente normale (se non limitato dal super utente) Anacron può essere utilizzato solo da utenti super (ma ci sono soluzioni alternative per renderlo utilizzabile da utenti normali)
Cron prevede che il sistema sia in esecuzione 24 ore su 24, 7 giorni su 7. Se un lavoro è pianificato e il sistema è inattivo durante quel periodo, il lavoro non viene eseguito. Anacron non prevede che il sistema sia in esecuzione 24 ore su 24, 7 giorni su 7. Se un lavoro è pianificato e il sistema è inattivo durante tale periodo, avvia i lavori quando il sistema si riavvia.
Ideale per i server Ideale per desktop e laptop
Utilizzare cron quando un lavoro deve essere eseguito a un'ora e un minuto particolari Utilizzare anacron quando un lavoro deve essere eseguito indipendentemente dall'ora e dai minuti

Linux
  1. Come uso cron in Linux

  2. Come utilizzare il formato Cron Job per pianificare attività in Linux

  3. Come configurare Rsync con SSH su UNIX / Linux (rsync senza password)

  4. Come creare thread in Linux (con un programma di esempio C)

  5. Come pianificare i lavori con il comando "at" in Linux

Come configurare MySQL con Docker in Linux

Come automatizzare le attività con cron Jobs in Linux

Come impostare un Cron Job in Debian 10

Come configurare un processo cron in cPanel

Come configurare Logstash su Linux con ElasticSearch, Redis, Nginx

Come pianificare i lavori con Cron in Linux