Som Linux-användare är du förmodligen bekant med cron. Den har fungerat som Unix-tidsbaserad jobbplanerare i många år. Nu ser många användare att Systemd timers börjar ersätta Crons dominans.

Denna artikel kommer att diskutera grunderna för hur du ställer in din egen timer och se till att den körs ordentligt på ditt system.

Relaterat : 4 Användbara Cron Alternativ För Linux

Installation?

Om du redan använder Systemd som ett init-system, kör många populära Linux distros som standard, inklusive Arch, Debian, Fedora, Red Hat och Ubuntu. Du får se tidtabeller som redan används. Det finns inget kvar att göra än att använda den funktionen som redan är installerad.

Lista befintliga timer

Det enklaste sättet att kontrollera att en timer finns på datorn är med kommandot:

 systemctl list-timers 

Du behöver inte köra detta som root.

 systemctl list-timers --all 

--all Alternativet här visar också inaktiva timers. Det finns inte några inaktiva timer på detta system.

Du bör hitta en utgång som liknar följande bild:

Du kan se datum och tid varje timme aktiveras, nedräkningen fram till den punkten, hur mycket tid som har gått sedan den senast sprang, enhetens namn på timern själv och den tjänst som varje timerenhet aktiverar.

Alla timare måste vara kopplade till en motsvarande tjänst. I nästa avsnitt ser du hur du skapar en ".timer" -fil som aktiverar en ".service" -fil.

Skapa en ny timer

Du kan skapa en ny timer genom att placera en anpassad .timerfil i "/ etc / systemd / system /." När jag skapade en ny timer för min DuckDNS dynamiska DNS-tjänstfil, slutade jag med den här texten:

 [Enhet] Beskrivning = Uppdatera duckdns dynamiska DNS [Timer] OnCalendar = * - * - * 11:43:00 Persistent = true [Installera] WantedBy = timers.target 

1. [Enhet] sektion

Alternativet "Beskrivning = ..." i filen berättar namnet / beskrivningen av timeren själv. I det här fallet kommer min "duckdns.timer" att uppdatera min DNS genom att säga "duckdns.service" -filen för att köra en serie kommandon.

Du kan ändra formuleringen efter "Beskrivning =" för att säga vad du vill.

2. [Timer] avsnitt

"OnCalendar = ..." här visar ett sätt att berätta timern när den ska aktiveras. *-*-* står för "Year-Month-Day, och asteriskerna betyder att det kommer att springa varje dag i varje månad varje år härifrån framåt. Tiden som följer asteriskerna visar vilken tid på dagen som timern ska springa.

"Persistent = true" betyder bara att timern körs automatiskt om den missade tidigare starttid. Detta kan hända eftersom datorn stängdes av innan händelsen kunde äga rum. Detta är valfritt men rekommenderat.

3. [Installera] avsnittet

Slutligen visar "WantedBy = timers.target" att Systemd timers.target använder denna .timer-fil. Denna rad i filen visar beroendekedjan från en fil till en annan. Du bör inte utelämna eller ändra den här raden.

Andra alternativ

Du kan hitta många andra funktioner genom att skanna man systemd.timer med man systemd.timer . Navigera till avsnittet "OPTIONS" för att upptäcka alternativ för noggrannhet, uthållighet och körning efter start.

Kör timern

Aktivera varje timer som du har skapat med systemctl enable och systemctl start syntax.

 sudo systemctl enable duckdns.timer sudo systemctl starta duckdns.timer 

Titta igen på systemctl list-timers att se din timer i aktion.

Du kan se om din timer körde som förväntat genom att inspektera dess motsvarande servicefil med systemctl status . I det här fallet kan du se att min timer körde klockan 11:43:00 som det var tänkt att.

Slutsats

Även om många program från tredje part, inklusive DuckDNS, kommer med skript som gör det möjligt för dem att uppdatera efter behov, skapar tidtagare i Systemd en bra kunskap att veta. Min skapande av en timer för DuckDNS här var onödig, men det visar hur andra typer av Systemd-tidtagare skulle fungera.

Denna kunskap kommer att vara till hjälp, till exempel för att skapa och driva egna Bash-skript. Du kan även använda den för att ändra en befintlig timer för att bättre passa dina önskemål. Dessutom är det alltid bra att veta hur din dator fungerar, och eftersom Systemd kontrollerar många grundläggande funktioner kan den här delen av pusset hjälpa dig att bättre förstå hur händelser utlöses varje dag.

Tack för att du följer med. Lycka till med att skapa egna timers.