Eu tenho um número de arquivos de mídia (digamos 500 arquivos de 500 MB cada, embora alguns sejam muito menores e alguns maiores) que eu não posso armazenar no meu computador, porque o disco rígido é muito pequeno, então eu quero armazená-los em uma unidade externa.
Eu poderia simplesmente mover tudo para uma única unidade, mas isso tem o risco de perder tudo em um acidente de carro. Portanto, é preciso haver várias unidades sincronizadas entre si. A sincronização deve manter as unidades intercambiáveis, adicionando um arquivo a uma unidade deve adicioná-lo à outra unidade e excluindo um arquivo em uma unidade deve excluí-lo por outro, não importa qual é o único e qual é o outro, porque Às vezes, uso vários computadores, cada um conectado à sua própria unidade externa, e não quero levar algum tipo de unidade mestre entre os computadores. Portanto, a ferramenta de sincronização precisa manter um histórico dos metadados dos arquivos que registram quais arquivos são novos e quais arquivos foram excluídos. Ele também deve rastrear renomear, para que não copie um arquivo renomeado na íntegra,
O histórico também pode tornar os backups mais confiáveis, se ele tiver um hash para cada arquivo, pode verificar se o arquivo ainda está intacto ou foi corrompido por problemas de disco. E eu poderia procurar quando o arquivo foi adicionado ou alterado pela última vez mais confiável do que o registro de data e hora do sistema de arquivos.
Agora estou procurando por uma ferramenta de sincronização. (atm estou usando apenas o linux, mas talvez eu use outro sistema operacional um dia?)
Algumas ferramentas que não se encaixam, mas se aproximam:
rsync: Não mantém um histórico.
unison: Mantém o histórico, mas está no computador de sincronização e não nos dados. Se eu sincronizá-los em um novo computador, seria necessário redigitalizar tudo. E ele usa bancos de dados emparelhados, se houver n espelhos em m computadores, ele manteria m n² histórias (ou apenas mn com uma topologia em estrela, mas então ele precisa de uma unidade mestre novamente). Além disso, o banco de dados não parece ter sido projetado para uso a longo prazo, uma nova versão uníssono pode ter um novo formato de banco de dados, que precisa ser redigitalizado novamente e não posso procurar em 10 anos quando adicionei mais esse arquivo.
controle de fonte, git, hg, svn, gut, javali: Os arquivos são grandes demais para manter um histórico de tudo. Também tenho arquivos importantes e sem importância na coleção, quando eu ficar sem espaço, eu prefiro excluir os arquivos sem importância permanentemente do que comprar uma unidade maior.
bup, git anexo: eles removem os arquivos do sistema de arquivos para armazená-los em seu próprio sistema de arquivos baseado em git. Isso dificulta o acesso a eles e eu prefiro uma solução que mantenha os arquivos como estão e apenas adicione os metadados necessários para rastrear as mudanças.
git-media: parece ser feito principalmente para contornar a limitação do tamanho do arquivo do git
dropbox google drive: não estão offline
owncloud: Isso parece ser baseado em um servidor central sempre em execução, em vez de um monte de discos rígidos iguais.
syncthing: parece rodar permanentemente e sincronizar tudo imediatamente entre computadores. Eu quero fazer a sincronização localmente, ocasionalmente, como em conectar as duas unidades externas ao mesmo computador e sincronizá-las uma vez por mês
sparkleshare: parece não ser feito para arquivos grandes