Vi laver en liste over software og værktøjer til Linux, der bruges som en guide til listen over syv dødssynder. Som i de tidligere artikler bruger vi dovenskab som undskyldning for at tale om automatiseringsværktøjer i Linux. En af dem i anakron. I denne artikel vil vi se, hvordan konfigurationen af anacrontab er. anacrontab er den, der fortæller anacron, hvad den skal gøre, og hvornår den skal gøres.
I anacron er datoen for opgaverne fastsat i dage og, hvis computeren ikke kører på tidspunktet for udførelse af en opgave, starter den op, når den starter.
Anacrontab-konfigurationen
Til at begynde med leder anacron efter listen over opgaver, der skal udføres i mappen /etc/anacrontab
. Opgaverne skal skrives i følgende format:
período retraso identificador del trabajo comando donde:
- periode: Hyppighed, hvormed arbejdet skal udføres. Det kan udtrykkes i dage (dets forkortelse på engelsk) periode (@daily, @weekly eller @monthly for dag, uge eller måned) eller med tal (1 for dag, 7 for uge, 30 for måned og et hvilket som helst tal for en vilkårlig periode af dage.
- forsinke: Den tid, der skal vente, før arbejdet påbegyndes. For eksempel 360 for at udføre en opgave klokken 6 om morgenen.
- jobidentifikation: Navn tildelt jobbet for at skelne det fra andre i fejl- og resultatrapporter
- comando: Det er instruktionen, som anacron skal udføre på det angivne tidspunkt.
.
Da vores hensigt er at bruge anacron til opgaver, der ikke har med systemadministration at gøre, vi skal replikere de mapper, der bruges af cron i vores lokale brugermappe. vi gør det med
mkdir -p ~/.local/etc/anacrontab: ~/.local/etc/cron.daily ~/.local/etc/cron.weekly ~/.local/etc/cron.daily ~/.var/spool/anacron
Med dette opretter vi mapperne til at gemme de forskellige daglige, ugentlige og månedlige scripts, samt det sted, hvor rapporten om den sidste udførelse af anacron vil blive gemt.
Til sidst fortæller vi anacron at bruge vores lokale brugermapper i stedet for systemets.
anacron -fn -t ~/.local/etc/anacrontab -S ~/.var/spool/anacron
Nu skal vi redigere en konfigurationsfil. Vi gør det fra terminalen med:
nano ~/.local/etc/anacrontab:
I det dokument, der åbnes, tilføjer vi disse linjer:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Disse linjer opfylder de samme funktioner, som vi allerede har forklaret for crontab. Angiv, at du skal bruge Bash som kommandofortolker, og i hvilke mapper du skal finde de eksekverbare filer. Vi gemmer dokumentet med maj + 0 og vi lukker den med Shift + X.
Navnet og placeringen af de cron-mapper, vi opretter, er et vilkårligt valg. Jeg har valgt at beholde standarderne for ikke at forvirre læsere, der kræver yderligere information fra andre kilder. Så længe stien til scriptet er angivet i acrontab, kan du bruge den foretrukne mappe og lagersti. Det samme gælder jobidentifikationen.
Der er to andre variabler, som vi kan konfigurere:
- START_HOURS_RANGE
- RANDOM_DELAY
: Indstiller det tidsinterval, inden for hvilket job skal starte (dvs. kun køre job i de følgende timer).
: Dette definerer den maksimale tilfældige forsinkelse tilføjet til den brugerdefinerede forsinkelse af et job (standard er 45).
Hvad er forskellen mellem cron og anacron?
cron er det, der i systemer og derivater er kendt som en daemon det vil sige et program, der kører i baggrunden og uden brugerindblanding. Det er beregnet til servere, altså udstyr, der fungerer næsten permanent, uden at nogen skal være opmærksomme på det, men som kræver hyppige vedligeholdelsesopgaver.
anacron er et normalt program mere velegnet til desktops De er ikke konstant tændt. Det er derfor, i modsætning til cron, hvor den mindste tidsenhed er minuttet, fungerer den med en minimumsfrekvens på én dag.
Af samme grund inkluderer cron ikke alternativer, hvis computeren ikke er tændt.eller mens anacron gennemgår de afventende opgaver ved login. Når den finder et job, der ikke er startet på det indstillede tidspunkt, vil det udføre kommandoen angivet i kommandofeltet efter at have ventet det antal minutter, der er angivet i forsinkelsesfeltet. Det vil derefter logge datoen til en tidsstempelfil.