para acompanhar meus backups, quero executar um comando rsync específico ao inserir um (s) disco (s) rígido (s) sata específico (s) em qualquer um ou em todos os meus compartimentos de hotswap. Isso seria feito usando uuids de alguma forma para controlar as unidades? sempre que procuro encontro udev para drives USB, isso também pode funcionar aqui?
Responder1
Eu uso uma regra simples do udev para isso. A unidade de backup é marcada com um rótulo de volume específico (use tune2fs para defini-lo). A regra udev inicia um script:
$ cat /etc/udev/rules.d/90-backup.rules
ACTION=="add", ENV{ID_FS_LABEL}=="backup", RUN+="/usr/local/bin/backup.sh"
(você pode usar ENV{ID_FS_UUID}="some-uuid" se preferir não usar rótulos de volume)
O script apenas executa o rsync:
$ cat /usr/local/bin/backup.sh
#!/bin/bash
mnt=/media/backup
(
mount $mnt
rsync -avx --exclude lost+found /home/ $mnt/backup/
umount $mnt
) > /dev/null 2>&1 &
O udev espera que o comando RUN="" tenha vida curta, então o script executa o rsync em segundo plano.
Isso funcionará para qualquer tipo de unidade e/ou interface - desde que o udev receba uma notificação de que a unidade foi adicionada.