Som Linux-bruker er du sannsynligvis kjent med cron. Den har jobbet som Unix-tidsbasert jobbplanlegger i mange år. Nå ser mange brukere at Systemd-tidtakere begynner å erstatte crons dominans.

Denne artikkelen vil diskutere grunnleggende om hvordan du konfigurerer din egen timer og sørge for at den kjører riktig på systemet ditt.

Relatert : 4 Nyttige Cron Alternativer For Linux

Installasjon?

Hvis du allerede bruker Systemd som et init-system, kjører mange populære Linux distros som standard, inkludert Arch, Debian, Fedora, Red Hat og Ubuntu - du vil se timere som allerede er i bruk. Det er ingenting igjen å gjøre enn å bruke den funksjonen som allerede er installert.

Liste Eksisterende Timere

Den enkleste måten du kan kontrollere at en tidtaker eksisterer på datamaskinen, er med kommandoen:

 systemliste-timere 

Du trenger ikke å kjøre dette som root.

 systemliste liste-timere --all 

- --all alternativ her viser også inaktive timere. Det er ikke noen inaktive timere for tiden på dette systemet.

Du bør finne en utgang som ligner på følgende bilde:

Du kan se datoen og klokkeslettet som hver timer vil aktivere, nedtellingen til det punktet, hvor mye tid det har gått siden den sist kjørte, enhetens navn på timeren selv og tjenesten som hver timerenhet aktiverer.

Alle tidtakere må være sammenkoblet med en tilsvarende tjeneste. I neste avsnitt vil du se hvordan du oppretter en ".timer" -fil som aktiverer en ".service" -fil.

Opprette en ny timer

Du kan opprette en ny timer ved å plassere en tilpasset .timerfil i "/ etc / systemd / system /." Ved å lage en ny timer for min dynamiske DNS-DNS-fil i DuckDNS, endte jeg med denne teksten:

 [Enhet] Beskrivelse = Oppdater duckdns dynamisk DNS [Timer] OnCalendar = * - * - * 11:43:00 Persistent = true [Installer] WantedBy = timers.target 

1. [Enhet] -delen

Alternativet "Beskrivelse = ..." i filen forteller deg navnet / beskrivelsen av timeren selv. I dette tilfellet vil min "duckdns.timer" oppdatere DNS-en ved å fortelle "duckdns.service" -filen for å kjøre en rekke kommandoer.

Du kan endre ordlyden etter "Description =" for å si hva du vil.

2. [Timer] -delen

"OnCalendar = ..." her viser en måte å fortelle timeren når den skal aktiveres. *-*-* står for "Year-Month-Day, og stjernene betyr at det vil løpe hver dag i hver måned hvert år fra herover fremover. Tiden som følger stjernene viser hvilken tid på dagen timeren skal løpe.

"Vedvarende = sant" betyr bare at timeren vil kjøre automatisk hvis den har gått glipp av den forrige starttiden. Dette kan skje fordi datamaskinen ble slått av før hendelsen kunne finne sted. Dette er valgfritt, men anbefalt.

3. [Installer] -delen

Endelig viser "WantedBy = timers.target" at Systemd timers.target vil bruke denne .timer-filen. Denne linjen i filen viser avhengighetskjeden fra en fil til en annen. Du bør ikke utelate eller endre denne linjen.

Andre muligheter

Du kan finne mange andre funksjoner ved å skanne man systemd.timer med man systemd.timer . Naviger til "OPTIONS" -delen for å finne alternativer for nøyaktighet, utholdenhet og kjøring etter oppstart.

Kjører timeren

Aktiver alle timer du har opprettet med systemctl enable og systemctl start syntax.

 sudo systemctl enable duckdns.timer sudo systemctl starte duckdns.timer 

Se igjen på systemctl list-timers å se timeren din i gang.

Du kan se om timeren din gikk som forventet ved å inspisere den tilhørende tjenestefilen med systemctl status . I dette tilfellet kan du se at timeren min løp klokka 11:43:00 som den skulle.

Konklusjon

Selv om mange tredjepartsprogrammer, inkludert DuckDNS, kommer med skript som gjør at de kan oppdatere etter behov, skaper timere i Systemd en nyttig ferdighet å vite. Min opprettelse av en timer for DuckDNS her var unødvendig, men det viser hvordan andre typer Systemd-timere ville fungere.

Denne kunnskapen vil være nyttig, for eksempel for å lage og kjøre egne Bash-skript. Du kan til og med bruke den til å endre en eksisterende timer for å bedre passe dine preferanser. Videre er det alltid godt å vite hvordan datamaskinen fungerer, og siden Systemd kontrollerer mange grunnleggende funksjoner, kan dette stykket av puslespillet hjelpe deg bedre å forstå hvordan hendelser utløses hver dag.

Takk for at du følger med. Lykke til med å skape dine egne timere.