Je suis en train de constituer un simple systemd minuterie pour exécuter un script bash tous les jours à minuit.
systemctl --user status backup.service
d'échec et les journaux suivants:
backup.service: Failed at step EXEC spawning /home/user/.scripts/backup.sh: No such file or directory.
backup.service: Main process exited, code=exited, status=203/EXEC
Failed to start backup.
backup.service: Unit entered failed state.
backup.service: Failed with result 'exit-code'.
Je suis perdu, étant donné que les fichiers et répertoires existent. Le script est exécutable et, juste pour vérifier, j'ai même mis les permissions à 777.
Un peu de contexte:
L' backup.timer
et backup.service
unité de fichiers sont situés dans /home/user/.config/systemd/user
.
backup.timer
est chargé et activé, et actuellement en attente de minuit.
Voici à quoi il ressemble:
[Unit]
Description=Runs backup at 0000
[Timer]
OnCalendar=daily
Unit=backup.service
[Install]
WantedBy=multi-user.target
Voici backup.service
:
[Unit]
Description=backup
[Service]
Type=oneshot
ExecStart=/home/user/.scripts/backup.sh
[Install]
WantedBy=multi-user.target
Et enfin, c'est une paraphrase de l' backup.sh
:
#!/usr/env/bin bash
rsync -a --delete --quiet /home/user/directory/ /mnt/drive/directory-backup/
Le script fonctionne très bien si j'exécute moi-même.
Vous ne savez pas si ça compte, mais j' fish
que mon shell (commencé à partir .bashrc).
Je suis heureux de publier le script intégral si c'est utile.