Som Linux-bruger er du sikkert bekendt med cron. Det har fungeret som Unix-tidsbaseret jobplanlægger i mange år. Nu ser mange brugere Systemd timers begynder at erstatte crons dominans.

Denne artikel vil diskutere grunde til, hvordan du konfigurerer din egen timer og sørg for, at den kører korrekt på dit system.

Relateret : 4 Nyttige Cron Alternativer til Linux

Installation?

Hvis du allerede bruger Systemd som et init-system, kører mange populære Linux distros som standard, herunder Arch, Debian, Fedora, Red Hat og Ubuntu - du vil se timere allerede i brug. Der er ikke noget andet at gøre end at bruge den funktion, der allerede er installeret.

Angiv eksisterende timer

Den nemmeste måde at kontrollere, at der findes en timer på din computer, er med kommandoen:

 systemliste-timere 

Du behøver ikke at køre dette som root.

 systemliste-timere - alle 

Den - --all muligheder her viser også inaktive timere. Der er ikke nogen inaktive timere i øjeblikket på dette system.

Du skal finde en udgang svarende til følgende billede:

Du kan se datoen og klokkeslættet, hver timer vil aktivere, nedtællingen indtil dette punkt, hvor meget tid der er gået siden den sidst blev kørt, enhedens navn på timeren selv og den tjeneste, hver timerenhed aktiverer.

Alle timere skal være parret med en tilsvarende tjeneste. I næste afsnit ses, hvordan du opretter en ".timer" -fil, der aktiverer en ".service" -fil.

Oprettelse af en ny timer

Du kan oprette en ny timer ved at placere en brugerdefineret .timerfil i "/ etc / systemd / system /." Når jeg oprettede en ny timer til min DuckDNS dynamiske DNS-servicefil, endte jeg med denne tekst:

 [Enhed] Beskrivelse = Opdater duckdns dynamisk DNS [Timer] OnCalendar = * - * - * 11:43:00 Vedvarende = sand [Installer] WantedBy = timers.target 

1. [Enhed] sektion

Indstillingen "Beskrivelse = ..." i filen fortæller dig navnet / beskrivelsen af ​​timeren selv. I dette tilfælde opdaterer min "duckdns.timer" min DNS ved at fortælle filen "duckdns.service" for at køre en række kommandoer.

Du kan ændre ordlyden efter "Description =" for at sige, hvad du vil.

2. [Timer] sektion

"OnCalendar = ..." her viser en måde at fortælle timeren på, hvornår den skal aktiveres. *-*-* står for "År-Måned-dag, og stjernerne betyder, at det løber hver dag i hver måned hvert år fra herefter fremad. Tiden der følger stjernerne viser, hvilken tid på dagen timeren skal køre.

"Vedvarende = ægte" betyder bare, at timeren kører automatisk, hvis den går glip af den foregående starttid. Dette kunne ske, fordi computeren var slukket, før arrangementet kunne finde sted. Dette er valgfrit men anbefales.

3. [Installer] sektion

Endelig viser "WantedBy = timers.target", at Systemd timers.target bruger denne .timer-fil. Denne linje i filen viser afhængighedskæden fra en fil til en anden. Du bør ikke udelade eller ændre denne linje.

Andre muligheder

Du kan finde mange andre funktioner ved at scanne Systemd's man side med man systemd.timer . Naviger til "OPTIONS" sektionen for at finde muligheder for nøjagtighed, vedholdenhed og kørsel efter opstart.

Kører timeren

Aktivér enhver timer, du har oprettet med systemctl enable og systemctl start syntax.

 sudo systemctl enable duckdns.timer sudo systemctl start duckdns.timer 

Se igen på systemctl list-timers at se din timer i gang.

Du kan se, om din timer løb som forventet ved at inspicere dens tilsvarende servicefil med systemctl status . I dette tilfælde kan du se, at min timer kørte klokken 11:43 som det skulle.

Konklusion

Selv om mange tredjepartsprogrammer, herunder DuckDNS, kommer med scripts, der giver dem mulighed for at opdatere efter behov, skaber timere i Systemd en nyttig færdighed at vide. Min oprettelse af en timer til DuckDNS her var unødvendig, men det viser, hvordan andre typer Systemd timere ville fungere.

Denne viden vil være nyttig, for eksempel til at oprette og køre dine egne Bash-scripts. Du kan endda bruge den til at ændre en eksisterende timer for bedre at passe til dine præferencer. Desuden er det altid godt at vide, hvordan din computer fungerer, og da Systemd styrer mange grundlæggende funktioner, kan dette ene stykke af puslespillet hjælpe dig bedre med at forstå, hvordan hændelser udløses hver dag.

Tak for at følge med. Held og lykke med at lave dine egne timere.