Minuteur - systemd
Systemd permet de créer des unités de type timer permettant d'ordonnancer des tâches au même titre que Cron. Ils s'appuient sur les services standards pour fonctionner et doivent porter le même nom que celui à exécuter automatiquement.
Pour la compréhension générale de la fonctionnalité, vous pouvez vous référer aux sources en bas de page. Dans notre cas, un exemple sera plus parlant. Celui-ci vise à exécuter une commande de synchronisation Rsync à une heure donnée tous les jours de l'année. Un service modèle permettra de réutiliser la même commande de synchronisation pour plusieurs machines et un minuteur (timer) les déclenchera au moment voulu.
Création du répertoire d'accueil des unités personnalisées de l'utilisateur
mkdir -p /usr/local/etc/systemd/system
Création d'un service modèle
vim /usr/local/etc/systemd/system/synchro_fichiers@.service
[Unit]
Description=Synchronisation des fichiers de Mediawiki
After=network.target
[Service]
Type=oneshot
ExecStart=rsync -av --progress --delete-after fichiers_dav/ www-data@%i:/
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Création du minuteur associé
vim /usr/local/etc/systemd/system/synchro_fichiers@.timer
[Unit]
Description=Exécution journalière de la synchronisation des fichiers Mediawiki
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
Mise à disposition des éléments à Systemd
ln -s /usr/local/etc/systemd/system/synchro_fichiers@.service /etc/systemd/system/ ln -s /usr/local/etc/systemd/system/synchro_fichiers@.timer /etc/systemd/system/
Rechargement du gestionnaire de configuration de Systemd
systemctl daemon-reload
Activation des minuteurs
systemctl enable synchro_fichiers@galera2.timer systemctl enable synchro_fichiers@galera3.timer systemctl start synchro_fichiers@galera2.timer systemctl start synchro_fichiers@galera3.timer