Serviço Systemd para executar um script quando um HDD USB está conectado

1

Estou tentando executar um script de backup quando um disco rígido USB está conectado, estou usando o Ubuntu 16.04.

O script de backup também deve desmontar (e possivelmente desligar) o disco quando terminar.

Não tenho entradas em /etc/fstab para esse disco. Eu simplesmente atribuí um rótulo (4tb) a ele com e2label e ele será automaticamente montado em /media/koichirose/4tb , pertencente à koichirose. Tudo bem até agora.

Aqui está o serviço systemd:

[Unit]
Description=Launches backup script when the 4TB WD drive is plugged in
Requires=media-koichirose-4tb.mount
After=media-koichirose-4tb.mount

[Service]
ExecStart=/home/koichirose/scripts/backup_to_4tb

[Install]
WantedBy=media-koichirose-4tb.mount

Se eu habilitar isso e conectar o HDD, /media/koichirose/4tb é criado, de propriedade de root, e logo após /media/koichirose/4tb1 é criado, de propriedade de koichirose. A unidade está realmente montada em 4tb1 e 4tb está vazia. O script de backup é executado e falha porque procura '4tb' e não '4tb1'. Se eu desmontar 4tb1, 4tb ainda está lá, de propriedade do root.

Se eu desabilitar o serviço, tudo estará bem novamente, a unidade está montada em 4 TB e o diretório é de propriedade correta do usuário.

Como posso corrigir isso?

Pergunta bônus: no final do meu script, estou atualmente executando umount . Isso é bom, mas descobri:

udisksctl unmount -b /dev/sdc1
udisksctl power-off -b /dev/sdc

O qual desmontaria e desligaria a unidade. Dois problemas com ele: ele pede a minha senha sudo (eu gostaria que ela fosse executada sem supervisão) e usa o nome do dispositivo (que pode ser alterado) em vez do ponto de montagem (que estou tentando tornar 'estático').

Edit: aqui está o script de backup ( /home/koichirose/scripts/backup_to_4tb ):

#!/bin/bash

export RESTIC_PASSWORD="mypassword"
repo_path=/media/koichirose/4tb/restic_incoming_backups
dir_to_backup=/home/koichirose

/usr/local/bin/restic -r $repo_path backup $dir_to_backup

#replace with udisksctl later...
umount /media/koichirose/4tb
    
por koichirose 06.10.2017 / 16:34

0 respostas