Estou lutando para implementar um sistema muito semelhante. Eu tenho que trabalhar, mas eu ainda quero ajustar isso e aquilo (ver esta questão mais geral: systemd - umount dispositivo após o serviço que depende dele termina ).
Aqui está uma solução funcional para o seu problema:
backup.service
[Unit]
Description=<DESCRIPTION HERE>
BindsTo=<STORAGE DEVICE UNIT HERE>.device mnt-backup.mount
After=<STORAGE DEVICE UNIT HERE>.device mnt-backup.mount
[Service]
ExecStart=<CALL TO BACKUP SCRIPT HERE>
Nota: para obter uma lista das unidades do dispositivo de armazenamento, use systemctl list-units --all --full | grep disk
Você pode adicionar RefuseManualStart = yes em [Unit] também.
mnt-backup.mount
[Unit]
DefaultDependencies=no
Conflicts=umount.target
Before=umount.target
[Mount]
What=/dev/disk/by-uuid/<DEVICE UUID HERE>
Where=/mnt/backup
Type=<FILESYSTEM HERE>
Você praticamente chegou aqui, agora para iniciar automaticamente backup.service
, estaremos usando uma regra do udev .
Aqui também você pode adicionar RefuseManualStart = yes em [Unit].
90-backup.rules
KERNEL=="sd*", ATTRS{serial}=="<HD SERIAL HERE>", TAG+="systemd", ENV{SYSTEMD_WANTS}+="backup.service"
Observação: para obter uma lista dos atributos do seu dispositivo específico, inclua seu número de série, use udevadm info -a -n /dev/sd*