Automaticamente rsync quando hotplugging uma unidade sata (bay não esata)

4

para manter meus backups Eu quero executar um comando rsync específico quando insiro um disco rígido sata específico em qualquer um ou todos os meus compartimentos hotswap. Isso seria feito usando uuids de alguma forma para acompanhar as unidades? sempre que eu procuro, eu acho o udev para drives usb, isso pode funcionar aqui também?

    
por Zak 08.08.2011 / 01:45

1 resposta

2

Eu uso uma regra do udev simples para isso. A unidade de backup é marcada com um rótulo de volume específico (use tune2fs para defini-lo). A regra do 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="" seja de curta duração, portanto o script executa o rsync em segundo plano.

Isso funcionará para qualquer tipo de unidade e / ou interface - contanto que o udev receba notificação de que a unidade foi adicionada.

    
por Jeremy Kerr 08.08.2011 / 07:00