Salut,
cron doit encore être utilisé, pour automatiser des tâches sur l’ordi, mais systemd a commencé à le faire, et en plus a bien évolué (je savais pas qu’il y avait un moyen d’avoir des timers système, et des timers utilisateurs, je n’étais pas à jour!).
C’est étonnant, du coup pratique aussi car il demande aucun mot de passe pour les timers!
Je vais donc donner ici ce que j’ai fait.
pipx install silkaj
systemctl list-timers --all
Pour voir où j’en suis! Les timers système.
systemctl --user list-timers --all
Les timers côté utilisateur
cd ~
silkaj authentication --file authfile.txt
Pour créer le fichier dans le dossier utilisateur principal. On peut le mettre ailleurs, si on précise le chemin.
nano ~/destinataires.txt
(ou d’autres programmes que nano, j’utilise plutôt vim même si je connais par coeur que les trucs que j’utilise tout le temps, donc peu)
Du coup on y écrit:
ABSOLUTE
# Megadon
10 HjWkHYDod49Cc9q6DB9BtUbiY2XgJ2tmQfKgyYKo5TQQ
# Remuniter
10 TENGx7WtzFsTXwnbrPEvb6odX2WnqYcnnrjiiLvp1mS
Le 10 avant la clé publique est la somme qu’on veut verser.
C’est pratique, si on veut automatiser des modifs!
systemctl edit --force --full --user backup-work.timer
Ça ressemble un peu à certaines commandes, qui contrôlent ce qu’on écrit (visudo par exemple), donc vaut mieux pas écrire ce fichier autrement.
Il est situé dans ~/.config/systemd/user
On y écrit:
[Unit]
Description=virements silkaj auto
RefuseManualStart=no
RefuseManualStop=no
[Timer]
Persistent=true
OnCalendar=weekly
Unit=silkaj.service
[Install]
WantedBy=default.targe
Ce fichier sert à donner la périodicité avec laquelle silkaj va faire le virement automatique.
Là il y a plein d’exemples ( systemd/Timers - ArchWiki ) et ailleurs aussi (chez gentoo c’est top, ça m’a bien aidé d’ailleurs…! systemd - Gentoo Wiki )
Persistent ça veut dire que si l’ordi n’est pas allumé à la date donnée, il fera le virement à l’allumage suivant.
mkdir ~/.local/bin
cd ~/.local/bin
Au cas où ils n’existent pas.
Il y a tout un truc avec PATH, pour que les programmes puissent être invoqués sans avoir à taper tout le chemin du programme pour l’executer (ce que j’ai dû faire quand même).
nano silkaj-virements.sh
Et on écrit dedans:
#!/bin/bash
exec /home/user/.local/bin/silkaj --auth-file --file ~/authfile.txt money transfer --file ~/destinataires.txt --yes
Où user est remplacé par notre id de l’ordi,
chmod +x silkaj-virements.sh
Pour rendre exécutable le programme qu’on a créé.
ls -actrl
Pour vérifier que c’est bon, s’il y a les x dans les autorisations c’est bon:
-rwxr-xr-x 1 daniel daniel 131 21 févr. 22:23 silkaj-virements.sh
systemctl edit --force --full --user silkaj.service
On écrit:
[Unit]
Description=virements auto silkaj
RefuseManualStart=no
RefuseManualStop=yes
[Service]
Type=oneshot
ExecStart=/home/daniel/.local/bin/silkaj-virements.sh
Puis j’ai fait:
systemctl --user daemon-reload
systemctl --user start silkaj.timer
systemctl --user enable silkaj.timer
systemctl --user enable silkaj.service
On peut contrôler si tout va bien avec:
systemctl --user list-timers --all
systemctl --user status silkaj.timer
systemctl --user status silkaj.service
Il doit mettre que c’est actif et tout.
J’ai fait pas mal de dons du coup, pour faire mes tests!
Un truc qui est marrant, c’est que cesium met une seule ligne pour les deux virements auto faits en même temps.