Execute o script de backup quando o disco USB estiver montado

1

Eu tenho um drive USB que é automaticamente descriptografado e montado quando eu o conecto. Então, uma vez montado, executo um script de backup para rsync o FS local para aquele disco. E então eu ejete a unidade.

Eu gostaria de automatizar isso para que, quando eu conectar a unidade, ela seja descriptografada e montada, o script seja executado e a unidade seja desmontada / ejetada. (Se eu conseguir receber uma notificação quando terminar, é ainda melhor, mas opcional.)

Então eu tentei com o systemd, mas estou aberto a outras soluções (embora agora que passei tempo lutando com o systemd, eu realmente gostaria de entender como isso funciona).

Por enquanto eu tentei criar um serviço que depende da montagem da unidade USB. Mas o serviço falha ao ativar a reclamação de que a montagem não existe quando a unidade não está conectada.

Então, tentei criar uma unidade de caminho:

[Unit]
Description=Monitors the backup path availability

[Path]
PathExists=/run/media/user/backup

[Install]
WantedBy=multi-user.target

Quando o caminho se torna disponível, ele inicia o serviço correspondente:

[Unit]
Description=Rsync System Backup
Requires=usb-hd-backup.path

[Service]
ExecStart=/usr/bin/rsync -aAXS --info=progress2 --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /run/media/user/backup


[Install]
WantedBy=graphical.target

Isso funciona pela primeira vez. Mas quando desmonto a unidade, o caminho permanece (isso não acontece quando eu inicio o script manualmente). Então, da próxima vez que eu conectar o drive, ele será descriptografado e, como o caminho original já existe, ele será montado em um caminho diferente (o mesmo que o original com um '1' anexado no final). Portanto, os scripts são executados em um caminho que não leva à unidade (e falha, pois a montagem / run é muito pequena).

Eu acho que há algumas idéias de systemd que eu realmente não entendo aqui.

    
por bastian 18.12.2016 / 12:28

0 respostas

Tags