Come utente Linux probabilmente hai familiarità con cron. Ha funzionato come programma di pianificazione dei lavori basato sul tempo Unix per molti anni. Ora molti utenti vedono che i timer di Systemd iniziano a sostituire il dominio di cron.
Questo articolo discuterà le basi su come impostare il tuo timer e assicurarti che funzioni correttamente sul tuo sistema.
Installazione?
Se stai già utilizzando Systemd come sistema di inizializzazione – molte distribuzioni Linux popolari lo eseguono per impostazione predefinita, inclusi Arch, Debian, Fedora, Red Hat e Ubuntu – vedrai i timer già in uso. Non resta altro da fare se non utilizzare quella funzionalità già installata.
Elenca timer esistenti
Il modo più semplice per verificare l’esistenza di un timer sul tuo computer è con il comando:
systemctl list-timers
Non devi eseguirlo come root.
systemctl list-timers --all
Il --all
l’opzione qui mostra anche i timer inattivi. Non ci sono timer inattivi attualmente su questo sistema.
Dovresti trovare un output simile alla seguente immagine:
Puoi vedere la data e l’ora in cui ogni timer si attiverà, il conto alla rovescia fino a quel momento, quanto tempo è passato dall’ultima volta che è stato eseguito, il nome dell’unità del timer stesso e il servizio che ciascuna unità timer attiva.
Tutti i timer devono essere associati a un servizio corrispondente. Nella prossima sezione vedrai come creare un file “.timer” che attivi un file “.service”.
Creazione di un nuovo timer
Puoi creare un nuovo timer inserendo un file .timer personalizzato in “/ etc / systemd / system /.” Nel creare un nuovo timer per il mio file di servizio DNS dinamico DuckDNS, sono finito con questo testo:
[Unit] Description=Update duckdns dynamic DNS [Timer] OnCalendar=*-*-* 11:43:00 Persistent=true [Install] WantedBy=timers.target
1. [Unit] sezione
L’opzione “Descrizione = …” nel file ti dice il nome / la descrizione del timer stesso. In questo caso il mio “duckdns.timer” aggiornerà il mio DNS dicendo al file “duckdns.service” di eseguire una serie di comandi.
Puoi cambiare la dicitura dopo “Description =” per dire quello che vuoi.
2. [Timer] sezione
“OnCalendar = …” qui mostra un modo per dire al timer quando attivarlo. *-*-*
sta per “Anno-Mese-Giorno” e gli asterischi indicano che verrà eseguito ogni giorno di ogni mese di ogni anno da qui in avanti. L’ora che segue gli asterischi mostra a che ora del giorno deve essere eseguito il timer.
“Persistente = vero” significa solo che il timer verrà eseguito automaticamente se ha perso l’ora di inizio precedente. Ciò potrebbe accadere perché il computer è stato spento prima che l’evento potesse aver luogo. Questo è facoltativo ma consigliato.
3. [Install] sezione
Infine, “WantedBy = timers.target” mostra che Systemd timers.target utilizzerà questo file .timer. Questa riga nel file mostra la catena di dipendenze da un file a un altro. Non dovresti omettere o modificare questa riga.
Altre opzioni
Puoi trovare molte altre funzionalità scansionando la pagina man di Systemd con man systemd.timer
. Passare alla sezione “OPZIONI” per scoprire le opzioni per la precisione, la persistenza e l’esecuzione dopo l’avvio.
Esecuzione del timer
Attiva qualsiasi timer che hai creato con il file systemctl enable
e systemctl start
sintassi.
sudo systemctl enable duckdns.timer sudo systemctl start duckdns.timer
Guarda di nuovo systemctl list-timers
per vedere il tuo timer in azione.
Puoi vedere se il tuo timer ha funzionato come previsto ispezionando il file di servizio corrispondente con systemctl status
. In questo caso puoi vedere che il mio timer ha funzionato alle 11:43:00 come avrebbe dovuto.
Conclusione
Sebbene molti programmi di terze parti, incluso DuckDNS, siano dotati di script che consentono loro di aggiornarsi secondo necessità, la creazione di timer in Systemd è un’abilità utile da conoscere. La mia creazione di un timer per DuckDNS qui non era necessaria, ma mostra come funzionerebbero altri tipi di timer Systemd.
Questa conoscenza sarà utile, ad esempio, per creare ed eseguire i tuoi script Bash. Puoi persino usarlo per modificare un timer esistente per adattarlo meglio alle tue preferenze. Inoltre, è sempre utile sapere come funziona il tuo computer e poiché Systemd controlla molte funzioni di base, questo pezzo del puzzle può aiutarti a capire meglio il modo in cui gli eventi vengono attivati ogni giorno.
Grazie per averci seguito. Buona fortuna con la creazione dei tuoi timer.