Como sincronizar automaticamente com um dispositivo de armazenamento em massa USB conectado?

4

Eu tenho (no momento) três dispositivos de armazenamento em massa USB móveis (unidade flash, telefone, e-reader). Gostaria de ter sempre as versões mais recentes de todos os meus arquivos comigo (como CV, passaporte, documentos de pesquisa, código-fonte, etc.)

Meus arquivos são alterados com frequência, portanto, copiá-los manualmente todos os dias não é viável. Idealmente, gostaria de conectar minha unidade flash (por exemplo), fazer com que meu computador a reconheça automaticamente, monte-a, sincronize-a e desmonte-a.

E os seguintes recursos 'seriam legais':

  • GUI
  • Notificação por meio do Xorg / KDE / Gnome quando a sincronização é iniciada / interrompida.
  • E por que não: sincronização bidirecional. Mas isso não é uma prioridade.

Encontrei algumas questões relacionadas a esta:

Mas nenhum deles responde a minha pergunta completamente. Eu suponho que eu poderia hackear algo juntos usando udev , rsync , etc., dado tempo suficiente. Mas eu odiaria reinventar a roda. E o tempo é algo que eu não tenho que poupar agora. Idealmente, gostaria de usar uma solução existente, mas não consigo encontrar uma.

Então, qual seria a maneira mais rápida de definir algo assim?

    
por mhelvens 03.03.2013 / 21:16

2 respostas

3

Você pode ir a rota do udev / rsync, mas precisará fazer alguns scripts. Verifique as inotify-tools em qualquer caso, elas são muito úteis para enviar notificações de alteração do sistema de arquivos para aplicativos .

Eu conheço três ferramentas GUI (quick to set up) para sincronizar sistemas de arquivos locais.

  1. O Unison é maduro e está bem documentado. Os métodos de monitoramento estão um pouco desatualizados, mas podem ser automatizados pelo inotify (ainda requer alguns scripts).

  2. O
  3. DirSync Pro não parece software livre, mas é.

  4. O FreeFileSync foi lançado recentemente, mas parece promissor. Ele tem uma opção para salvar comparações de diretório como um lote e acionar a sincronização em eventos, como montar uma unidade externa.

por 04.03.2013 / 07:33
2

Além da resposta do @dartonw, se você gosta de usar o script bash para fazer simlpe two-way syncro, você pode usar rsync dessa maneira

#!/bin/sh
exitcode=1 
#do check if usb flash is mounted
if test -e '/your_path_to_usb_mountpoint';then 
exitcode=0
#from folder to usb if the files are newers
rsync -avun --inplace  /your_folder_wich_you_want_to_syncronize/ /your_path_to_usb_mountpoint ;
#from usb to folder if the files are newers
rsync -avun --inplace /your_path_to_usb_mountpoint/ /your_folder_wich_you_want_to_syncronize/ 
fi 
#if the flash is not mounted exit with exitcode=1 
exit $exitcode
    
por 04.05.2013 / 09:59