Je voudrais exécuter un script toutes les 30 minutes après le démarrage du système. Je sais que vous pouvez utiliser cron, mais je ne prévois pas d'utiliser souvent cette fonctionnalité, donc j'aimerais l'essayer avec systemd.
Jusqu'à présent, je n'ai trouvé que les minuteries monotones qui permettent d'exécuter quelque chose une fois (du moins je le pense). Comment le foo.timer
et [email protected]
ressemble au cas où je voudrais exécuter quelque chose toutes les 30 minutes depuis le démarrage/démarrage du système ?
[e-mail protégé]
[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... ???
Réponse acceptée :
Vous devez créer deux fichiers :un pour le service, l'autre pour la minuterie avec le même nom.
exemple :
/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
après cela, rechargez le systemd en utilisant la commande systemctl daemon-reload
et démarrez votre minuterie par systemctl start test.timer
, ou activez-le par défaut (systemctl enable test.timer
).
tester le contenu de 1.sh
#!/bin/bash
echo `date` >> /tmp/2
Et commande pour vérifier tous les timers disponibles :systemctl list-timers --all
Des informations plus détaillées sur la page du projet et des exemples sur la page ArchLinux