Come posso usare rsync con un file system FAT?


27

Vorrei scrivere un semplice script di backup che salva alcuni dati su un'unità FAT. Devo riformattare l'unità e utilizzare un file system migliore o è possibile utilizzare rsync con FAT? In tal caso, quali problemi potrei incontrare? Le prestazioni sarebbero molto peggiori?

EDIT: Questo è su Linux, non sapevo nemmeno che ci fosse un rsync per Windows. I sorgenti sono vari file system (è un disastro) e la destinazione è attualmente formattata con FAT32.

Grazie per le tue risposte, probabilmente proverò a riformattare, poiché non sono completamente sicuro delle dimensioni dei file che avremo.

Risposte:


10

Consiglierei la riformattazione su Linux fs, se possibile. Come accennato, FAT ha limiti di dimensione del file relativamente bassi e potrebbe non gestire le autorizzazioni e la proprietà nel modo giusto. Ancora più importante, FAT non tiene traccia dei tempi di modifica sui file con la stessa precisione, ad esempio ext3 (FAT è preciso solo all'interno di una finestra di 2 secondi). Questo porta a un comportamento particolarmente sgradevole con rsync in quanto a volte deciderà che i file originali sono più recenti o più vecchi del file di backup abbastanza da dover copiare nuovamente i dati o almeno ricontrollare gli hash. Tutto sommato, rende le prestazioni molto scarse sui backup. Se è necessario attenersi a FAT, esaminare i flag --size-only-e -modify-window di rsync come soluzioni alternative.


36

Uso rsync per eseguire il backup delle mie foto archiviate ed elaborate su laptop con Linux (Ubuntu 10.4). Li eseguo il backup su un NAS di base con un disco rigido da 1 TB formattato come FAT32. Il case e il firmware NAS sono molto semplici, quindi non consentono di riformattare l'unità.

Il comando che uso è:

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

Per consentire un corretto confronto dei tempi, viene utilizzata l'opzione --modify-window = 1, poiché FAT32 registra i timestamp dei file con una risoluzione di 2 secondi, che è diverso dai filesystem utilizzati su Linux. Il --update per evitare la copia non necessaria di file esistenti - si comporta come un backup incrementale.

Per eseguire un confronto basato sulle dimensioni, è possibile specificare l'opzione --size-only.


Grazie per la condivisione, controllerò la tua combinazione di bandiere :-) Il manuale di rsync è un po 'ingombrante ...
Zio olandese,

3
--modify-window = 1 fa una differenza enorme. Ha risolto il problema - ora ho finito in millisecondi invece che in minuti.
Wolfgang Fahl,

4
Per qualche motivo ho bisogno di usare --modify-window=2. Quando lo si utilizza 1, copia ancora tutti i file. Copia da NTFS a FAT32.
Luc,

Occasionalmente, anche con --modify-window, rsync insisteva nel copiare tutti i miei file. Sto usando l' --size-onlyopzione ora e funziona bene. Era da Mac OS Esteso (maiuscolo / minuscolo, Journaled) a FAT32.
diachedelico

Probabilmente è una buona idea aggiungere "--ignore-errors --max-size = 4GB" per evitare l'arresto anomalo di file che non rientrerebbero in FAT32.
Maksym,

2

Questo rsync è su Linux da / verso un disco FAT (quale versione di FAT?) O stai usando la versione di Windows cwRsync?

In entrambi i casi FAT16 e 32 funzionano con entrambe le versioni (non ho provato FAT12 da solo). Se sei su un sistema Linux mi aspetto che le prestazioni di un filesystem FAT siano un po 'peggiori rispetto all'utilizzo di un filesystem in formato Linux poiché in generale sono leggermente più lente (felice che qualcuno mi metta su questo se sono sbagliato).


1

Sì, riformattare! Dovresti sempre usare un file system migliore di FAT a meno che non sia necessario per motivi di compatibilità!

Ti suggerirei di formattare l'unità utilizzando lo stesso file system da cui stai eseguendo la risincronizzazione, altrimenti perderai potenzialmente le autorizzazioni e gli attributi impostati sui tuoi file e directory.

FAT (presumibilmente FAT32) potrebbe essere problematico a causa delle dimensioni massime del file (4 GB), delle dimensioni massime del volume (2 TB - un giorno comunque!), Frammentazione ecc.

Tuttavia, se nulla di tutto ciò è importante e desideri solo un file system semplice, veloce e compatibile al massimo, FAT sarà OK. Per quanto riguarda la velocità, a causa della mancanza di journaling, autorizzazioni, ecc., FAT potrebbe eventualmente eseguire le alternative: NTFS / Ext3 / HFS ...


1

C'è un motivo per cui stai utilizzando l'unità FAT? Rsync dovrebbe funzionare per salvare i dati, ma perderai le meta informazioni sui file ... proprietà, autorizzazioni, ecc ... e rischi di avere problemi se risincronizzi file di grandi dimensioni poiché FAT ha un limite di dimensione del file di 2 gig.

Prestazioni sulle quali non posso commentare, non ho mai eseguito benchmark rispetto ad altre. Immagino che abbia anche molto a che fare con le specifiche dell'unità e con il filesystem a riguardo.

Se potessi , riformattarei nel formato nativo che stai pianificando di utilizzare con il computer (OS X? Linux?), Se non altro per mantenere i metadati e perdere lo schiaffo sulla fronte in pochi mesi quando finisco sincronizzare qualcosa che si risolve in errore a causa delle limitazioni del filesystem. spesso la condivisione con altri sistemi può essere effettuata attraverso la condivisione delle esportazioni o se si utilizza NTFS è possibile conservare alcuni metadati ma ottenere comunque la massima compatibilità tra sistemi poiché Mac, NT e Linux supportano ora tutte le funzionalità R / W NTFS.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.