Desativa o rsync apenas conectando uma unidade USB?

6

Gostaria de saber se é possível montar automaticamente e iniciar o rsync para sincronizar uma unidade USB com um diretório? Especificamente, gostaria de copiar o máximo de dados que a unidade puder armazenar e excluir apenas os arquivos mais antigos, se precisar de espaço. Eu diria que faria algo assim com um script, mas meu problema é por onde começar! Quaisquer comentários e sugestões apreciados.

Obrigado

    
por Mister IT Guru 17.02.2011 / 13:57

2 respostas

1

Provavelmente, você desejará investigar uma regra do Udev para iniciar um script. O que é bom sobre as regras do udev é que você pode bloquear o drive usb usado para backup, para que nem todas as unidades usb sejam acionadas.

O primeiro passo é fazer sua regra do udev funcionar:

Aqui está um ótimo tutorial sobre como escrever regras do udev
e aqui está outro

Depois, você pode seguir para o seu aspecto de script. O primeiro link cobre um pouco do lançamento do script do udev, então você só precisa chamar o rsync dele.

man: o rsync tem muitas informações sobre o uso.

    
por 17.02.2011 / 14:45
0

Aqui está a coragem de uma tarefa de backup que verifica se há um disco rígido montado em USB. Seria fácil modificá-lo para outros propósitos e, em seguida, continuar chamando pelo cron ou talvez executá-lo em segundo plano com um loop de sono ao redor das partes principais. Este script permite que você especifique onde o disco usb deve ser encontrado (sdd), mas seria muito fácil modificá-lo para procurar um pen drive USB por ID de unidade.

A origem do backup é uma unidade montada em NFS, mas obviamente isso pode ser alterado / removido conforme necessário.

Existe um loop for no meio que especifica os locais a serem copiados

 # V1.01
 # Uses variable for usbdisk partition

started='date'
usbdisk='sdd1'

if [ $(mount | grep -c /mnt/usbdisk) != 1 ]; then
 echo "USB disk is not mounted - trying to mount..."
 mount /dev/$usbdisk /mnt/usbdisk
 if [ $(mount | grep -c /mnt/usbdisk) != 1 ]; then
   echo "USB disk still not mounted - alerting admins and quitting"
   echo "USB disk is not mounted on TUX9 so backup cannot continue" | mail -s "TUX9 backup problem" [email protected]
   exit 1
 fi
fi

if [ $(mount | grep -c /mnt/nas) != 1 ]; then
  echo "NAS NFS mount is not present - trying to mount..."
  mount -t nfs -o proto=tcp,port=2049 mynas3:nas /mnt/nas
  if [ $(mount | grep -c /mnt/nas) != 1 ]; then
    echo "NAS NFS mount is still not present - alerting admins and quitting"
    echo "NAS NFS mount is not present on TUX9 so backup cannot continue" | mail -s "ASLTUX9 backup problem" [email protected]
    exit 1
  fi
fi

echo "All mount points present - backup starting..."

for i in /boot / /home /var /mnt/nas
# for testing for i in /boot
do
        if [ $i = "/" ]; then
                rsync -axv --delete [email protected]:$i /mnt/usbdisk/backup/root
        elif [ $i = "/mnt/nas" ]; then
                rsync -axv --delete $i/ /mnt/usbdisk/backup/nas
        else
                rsync -axv --delete [email protected]:$i/ /mnt/usbdisk/backup$i
        fi
done

echo done, started at $started, finished at 'date'
echo "Backup of NAS3 and TUX8 to USB disk on TUX9 done. Started at $started, finished at 'date'" | mail -s "TUX9 backup completed" [email protected]
    
por 17.02.2011 / 14:46