Comment exécuter un script à intervalle régulier sur un CoreOS ?

Pour exécuter un script bash à intervalle régulié sur un CoreOS, on peut utiliser les systemd timers.

L’exemple ci-dessous copie un fichier vers un répertoire toutes les 2 minutes. Mais vous pouvez exécuter le script que vous voulez.


Créer le fichier service. Il doit être créé dans ce répertoire, et son nom doit se terminer par « .service »

sudo vi /etc/systemd/system/copy.service

Contenu du fichier de service

[Unit]
Description=Copy files from a folder to another

[Service]
Type=oneshot
ExecStart=/usr/bin/sh -c '/home/core/script/copy'

Le script appelé copy qui s’exécute dans le service

#!/bin/bash
# Copy the hello.png file to home folder
cp /tmp/hello.png /home/core/

Créez le timer. Il faut le mettre dans le même répertoire, et son nom doit se terminer par « .timer »

sudo vi /etc/systemd/system/copy.timer

Contenu du fichier

[Unit]
Description=Run service every 2 minutes

[Timer]
OnCalendar=*:0/2

Quelques commandes utiles

# Pour lister tous les timers
sudo systemctl list-timers --all

Cela permet de savoir quand le timer va s’exécuter à nouveau, et quand il s’est exécuté la dernière fois.

# Pour démarrer le timer
sudo systemctl start copy.timer
# Pour l'arrêter
sudo systemctl stop copy.timer

Voir la documentation :
https://coreos.com/os/docs/latest/scheduling-tasks-with-systemd-timers.html

Laisser un commentaire

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.