GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:esegui script ogni 30 minuti con Systemd?

Vorrei eseguire uno script ogni 30 minuti dopo l'avvio del sistema. So che puoi usare cron, ma non ho intenzione di usare questa funzione spesso, quindi mi piacerebbe provarla con systemd.

Finora ho trovato solo i timer monotoni che consentono di eseguire qualcosa una volta (almeno penso di sì). Come sarebbe il foo.timer e [email protected] nel caso volessi eseguire qualcosa ogni 30 minuti dall'avvio/avvio del sistema?

[email protetta]

[Unit]
Description=run foo
Wants=foo.timer

[Service]
User=%I
Type=simple
ExecStart=/bin/bash /home/user/script.sh

foo.timer

[Unit]
Description=run foo

[Timer]
where I am stuck... ???

Risposta accettata:

Devi creare due file:uno per il servizio, l'altro per il timer con lo stesso nome.

esempio:

/etc/systemd/system/test.service

[Unit]
Description=test job

[Service]
Type=oneshot
ExecStart=/bin/bash /tmp/1.sh

/etc/systemd/system/test.timer

[Unit]
Description=test

[Timer]
OnUnitActiveSec=10s
OnBootSec=10s

[Install]
WantedBy=timers.target

dopodiché ricarica il systemd usando il comando systemctl daemon-reload e avvia il timer con systemctl start test.timer o abilitarlo per impostazione predefinita (systemctl enable test.timer ).

testare il contenuto di 1.sh

#!/bin/bash
echo `date` >> /tmp/2

E comando per controllare tutti i timer disponibili:systemctl list-timers --all

Informazioni più dettagliate sulla pagina del progetto ed esempi sulla pagina di ArchLinux


Linux
  1. Compila uno script PHP in Linux

  2. Come aggiungere shebang #! con script php su Linux?

  3. Autorizzazione negata con bash.sh per eseguire cron

  4. Come eseguo uno script prima di tutto il resto all'arresto con systemd?

  5. Creazione di modelli con Linux in uno script Shell?

Esegui applicazioni Windows su Linux con Crossover 15

Come eseguire il software Windows su Linux con Bottles

Come eseguire lo script della shell come servizio Systemd in Linux

Come eseguire lo script della shell come servizio SystemD in Linux

Esegui il contenitore Docker Almalinux o Rocky Linux 8 con Systemd (systemctl)

Come eseguire un alias con Sudo in Linux