Como posso usar o rsync com um sistema de arquivos FAT?

27

Eu gostaria de escrever um script de backup simples que salve alguns dados em uma unidade FAT. Devo reformatar a unidade e usar um sistema de arquivos melhor ou é possível usar o rsync com o FAT? Em caso afirmativo, em que problemas posso me deparar? O desempenho seria muito pior?

EDIT: Este é no Linux, nem sabia que havia um rsync para Windows. As fontes são vários sistemas de arquivos (é uma bagunça) e o destino está atualmente formatado com o FAT32.

Obrigado por suas respostas, provavelmente vou fazer uma reformatação, pois não tenho certeza absoluta dos tamanhos de arquivo que teremos.

Kim
fonte

Respostas:

10

Eu recomendaria reformatar para um linux fs se você puder. Como mencionado, o FAT possui limites de tamanho de arquivo relativamente baixos e pode não lidar com permissões e propriedade corretamente. Mais importante, o FAT não rastreia os tempos de modificação nos arquivos com a mesma precisão, digamos ext3 (o FAT é preciso apenas dentro de uma janela de 2 segundos). Isso leva a um comportamento particularmente desagradável com o rsync, pois às vezes ele decide que os arquivos originais são mais novos ou mais antigos que o arquivo de backup o suficiente para que seja necessário copiar novamente os dados ou pelo menos verificar novamente os hashes. Em suma, o desempenho é muito ruim nos backups. Se você precisa se ater ao FAT, consulte os sinalizadores --size-only e --modify-window do rsync como soluções alternativas.

thraxil
fonte
36

Uso o rsync para fazer backup de minhas fotos que armazeno e processo em laptops com Linux (Ubuntu 10.4). Eu os faço backup em um NAS muito básico com disco rígido de 1 TB formatado como FAT32. O gabinete e o firmware do NAS são muito básicos, portanto, não permitem reformatar a unidade.

O comando que eu uso é:

$ rsync --progress --modify-window=1 --update --recursive --times \
  /home/mloskot/Pictures /mnt/nas/Pictures

Para permitir a comparação correta de tempo, a opção --modify-window = 1 é usada, porque o FAT32 registra os registros de data e hora do arquivo com uma resolução de 2 segundos diferente dos sistemas de arquivos usados ​​no Linux. A atualização - para evitar cópias desnecessárias de arquivos existentes - se comporta como backup incremental.

Para fazer uma comparação baseada em tamanho, você pode especificar a opção --size-only.

mloskot
fonte
Obrigado por compartilhar, eu vou estar verificando a sua combinação de sinalizadores :-) O manual rsync é um pouco volumoso ...
DutchUncle
3
a --modify-window = 1 faz uma enorme diferença. Ele resolveu o - agora estou pronto em milissegundos em vez de minutos.
precisa
4
Por alguma razão eu preciso usar --modify-window=2. Ao usá- 1lo, ainda copia todos os arquivos. Copiando do NTFS para o FAT32.
Luc
Ocasionalmente, mesmo com --modify-window, o rsync insistia em copiar todos os meus arquivos. Estou usando a --size-onlyopção agora e está funcionando bem. Isso foi do Mac OS Extended (com distinção entre maiúsculas e minúsculas e diário) até o FAT32.
Diachedelic 03/04
Provavelmente, é uma boa ideia adicionar '--ignore-errors --max-size = 4GB' para evitar falhas nos arquivos que não cabem no FAT32.
Maksym
2

Esse rsync está no linux para / de um disco FAT (qual versão do FAT?) Ou você está usando a versão do Windows cwRsync?

De qualquer maneira, o FAT16 e o ​​32 funcionam com ambas as versões (eu mesmo não tentei o FAT12). Se você estiver em um sistema Linux, eu esperaria que o desempenho de um sistema de arquivos FAT fosse um pouco pior do que usar um sistema de arquivos no formato Linux, pois, em geral, eles são um pouco mais lentos (feliz por alguém me colocar nesse caso, se eu estiver errado).

Chopper3
fonte
1

Sim reformate! Você sempre deve usar um sistema de arquivos melhor que o FAT, a menos que seja necessário por motivos de compatibilidade!

Eu sugiro que você formate a unidade usando o mesmo sistema de arquivos do qual você está sincronizando, caso contrário você poderá perder permissões e atributos definidos em seus arquivos e diretórios.

O FAT (presumivelmente o FAT32) pode ser problemático devido aos tamanhos máximos de arquivos devidos (4 GB), tamanhos máximos de volume (2 TB - um dia de qualquer maneira!), Fragmentação etc.

No entanto, se nada disso importa e você deseja apenas um sistema de arquivos simples, rápido e com máxima compatibilidade, o FAT ficará OK. Em termos de velocidade, devido à falta de diários, permissões, etc., o FAT poderia executar as alternativas - NTFS / Ext3 / HFS ...

Jon Rhoades
fonte
1

Existe uma razão para você estar usando a unidade FAT? O Rsync deve trabalhar para salvar os dados, mas você perderá meta informações sobre arquivos ... propriedade, permissões, etc ... e corre o risco de ter problemas se você sincronizar novamente arquivos grandes, já que o FAT tem um limite de tamanho de arquivo de 2 GB.

Desempenho em que não posso comentar, nunca executei benchmarks em comparação com outros. Eu imagino que também tenha muito a ver com as próprias especificações da unidade, bem como com o sistema de arquivos.

Se você pudesse , reformataria para o formato nativo que você planeja usar com o computador (OS X? Linux?), Se não fosse por nada além de manter os metadados e perder a testa em alguns meses quando eu terminar sincronizar algo que com erros devido a limitações do sistema de arquivos. geralmente o compartilhamento com outros sistemas pode ser feito através do compartilhamento de exportações ou, se você usa o NTFS, pode manter alguns metadados, mas ainda obtém a maior compatibilidade entre sistemas, já que o Mac, NT e Linux agora suportam a capacidade NTFS R / W.

Bart Silverstrim
fonte