I forrige artikkel Jeg fortalte deg om cron, et systemprogram som kjører oppgaver automatisk på et bestemt tidspunkt. Nå skal vi se hvordan vi kan automatisere oppgaver med Anacron. Anacron lar oss overvinne en av Crons svakheter. Hvis datamaskinen er av på det tidspunktet oppgaven skulle utføres, utføres den ikke igjen før neste årstid inntreffer og datamaskinen er på.
I tilfellet med Anacron, Når datamaskinen slås på igjen, utfører den oppgavene som ventet.
Slik automatiserer du oppgaver med Anacron
Når datamaskinen starter, ser Anacron etter sist gang en gitt instruksjon ble utført, og hvor ofte den ble fortalt at den skulle utføres. Akkurat som med Cron lagres gjøremålslisten i en tekstfil kalt den ganske uoriginale anacrontab. Men det er en viktig forskjell, I dette tilfellet angis datoen ved å opprette en dag, forsinkelsen i minutter, jobbidentifikatoren og kommandoen som skal utføres.
Anacron sjekker, for hver oppgave, om den ble utført innen et visst antall dager. Det antallet dager er perioden som er angitt for den jobben. Hvis den ikke har kjørt, venter Anacron det nødvendige antallet minutter og gjør det. Deretter noterer du datoen, som fungerer som en indikasjon på når du skal kjøre den på nytt.
Vi kan finne anacron ved navn eller i cronie-pakken i større distribusjoner.
For å kjøre den må vi spesifisere følgende parametere:
-F: Utførelse av oppgaven selv om den ikke er på den angitte datoen.
-i: Endrer datoen for jobbene til dagens dag, men utfører dem ikke.
-s: Angir at en oppgave utføres når den forrige er ferdig.
-n: Det er som å bruke -fy-parametrene
-q: Hvis det brukes med -d, forhindrer det at feilmeldinger vises.
-t: Forteller Anacron hvor den finner oppgavelisten.
-T: Kontrollerer innstillingene for oppgavelisten og viser en feilmelding om nødvendig.
-S Angir katalogen der tidsstemplene lagres.
I Anacrontab-filen må vi legge til følgende parametere
SHELL=/bin/bash: Angir at Bash skal brukes som kommandotolker.
MAILTO= Etter likhetstegnet angir vi en e-postadresse for å sende oss feilrapporten. Selv om det ikke er nødvendig å gjøre det i skrivebordsdistribusjoner.
STI=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin: Dette gjør at vi slipper å legge til ruten til hver oppgave.
Syntaksen for Anacrontab-oppgaven er kommandoen period delay job id der:
Periode: Det er hyppigheten arbeidet må utføres med. Det kan angis som en periode (@daglig, @ukentlig eller @månedlig for dag, uke eller måned) eller med tall (1 for dag, 7 for uke, 30 for måned og et hvilket som helst tall for en hvilken som helst periode med dager).
Forsinkelse: Dette er hvor lang tid det tar å vente før man starter. Det uttrykkes i minutter
Jobb-ID: Det er et navn som er tildelt oppgaven for å skille den fra andre
Kommando: Dette er kommandoen som anacron må kjøre på det angitte tidspunktet.
Vi må også opprette en katalog for å kjøre de forskjellige oppgavene.
mkdir -p ~/.local/etc/anacrontab: ~/.local/etc/cron.daily ~/.local/etc/cron.weekly ~/.local/etc/cron.daily ~/.var/spool/anacron
Dette oppretter mappene der de daglige, ukentlige og månedlige utførelsesskriptene og rapporten om den siste anacron-utførelsen lagres.
For å be den om å bruke disse mappene:
anacron -fn -t ~/.local/etc/anacrontab -S ~/.var/spool/anacron
Vi redigerer konfigurasjonsfilen fra terminalen
nano ~/.local/etc/anacrontab
Vi legger til disse linjene:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
To andre variabler kan konfigureres
START_HOURS_RANGE: For å indikere at jobber bare skal starte innenfor en viss tidsramme.
RANDOM_DELAY: Angir maksimal tilfeldig forsinkelse
Dette avslutter vår korte gjennomgang av to nyttige kommandolinjeverktøy for å automatisere oppgaver på datamaskinene våre. I senere artikler vil vi se at det finnes grafiske applikasjoner som også lar oss gjøre det samme.