Modo più sicuro per copiare file su AirPort Disk dalla riga di comando?

2

Ho appena iniziato a utilizzare un disco AirPort (un Drobo collegato via USB all'AirPort Extreme). Sto cercando di decidere quale sia il modo più sicuro per copiare i file sul Drobo dal mio MacBook Pro, che si connette alla rete Wi-Fi di AirPort (802.11n-only / 5GHz).

(Per "sicuro" intendo "in grado di dire che qualcosa è andato storto durante il trasferimento e lancia un errore" soprattutto considerando che trasferirò grandi quantità di dati su un disco che potrebbe scomparire su un Wi -Risposta.Piace che sia ragionevole prendere una precauzione in più o due.)

Sembra che rsync faccia un checksum per assicurarti che il trasferimento sia andato a buon fine, secondo questa sezione di man rsync :

-c, --checksum

Note that rsync always verifies that each transferred file was correctly reconstructed on the receiving side by checking its whole-file checksum, but that automatic after-the-transfer verification has nothing to do with this option's before-the-transfer "Does this file need to be updated?" check.

Tranne che non sono sicuro (e non riesco a trovare alcuna fonte ufficiale da dirmi) se è vero per copiare file tra diverse cartelle sullo stesso computer, dal momento che (tecnicamente) non esiste un "lato ricevente" nel tradizionale senso di copiare da un computer all'altro. Certamente sembra come rsync impiega più tempo a fare un checksum dopo il trasferimento, ma questo è in gran parte una congettura, e non sono sicuro di come testarlo a sufficienza per prendere in considerazione qualsiasi decisione io possa rendi conclusivo .

(Nel caso in cui qualcuno sia tentato di suggerire di leggere il codice sorgente di rsync non sono abbastanza familiare con la programmazione per farlo.In realtà, non sono nemmeno sicuro di dove trovare l'effettivo rsync di codice utilizzato da OS X. Vedere anche: link in questa pagina .)

Il bit rilevante di scripting che intendo utilizzare è qui:

for i in "$@"
do
    /usr/bin/rsync \
    --8-bit-output \
    --exclude='*/.DocumentRevisions-V100/*' \
    --exclude='*/.fseventsd/*' \
    --exclude='*/.Spotlight-V100/*' \
    --exclude='*/.TemporaryItems/*' \
    --exclude='*/.Trashes/*' \
    --extended-attributes \
    --human-readable \
    --inplace \
    --itemize-changes \
    --links \
    --partial \
    --progress \
    --recursive \
    --stats \
    --timeout=30 \ 
    --times \
    --verbose \
    -- "${i}" "${DEST}/"
done

(n.b% $DEST è precedentemente definito come /Volumes/DroboUSB-Backups )

Questo salterà anche i file che sono stati precedentemente copiati, ma compila tutti quelli mancanti, proprio come il comando "Unisci" che tutti desideriamo che il Finder avesse.

1) Ho perso qualche opzione su rsync che dovrei usare?

(Nota che ho non intenzionalmente incluso --compress dato che la maggior parte dei file che copierò saranno già compressi.)

2) Ci sono altri programmi che dovrei considerare invece di rsync ? (Le alternative devono essere qualcosa che posso scrivere dalla riga di comando, quindi non Transmit o ChronoSync.)

    
posta TJ Luoma 21.02.2014 - 07:41
fonte

1 risposta

1

L'utilizzo di rsync è probabilmente l'opzione migliore e i flag enumerati nella tua domanda sono ragionevoli.

Uno strumento alternativo da usare sarebbe dd . Questo strumento si avvicina al processo di copia a un livello inferiore e viene spesso promosso dove sono richieste copie esatte dei dischi. Il manuale dd ha tutte le opzioni. Preferisco rsync per la relativa semplicità.

Controllo post copia

Potresti voler estendere lo script per eseguire un controllo post- rsync . Utilizza un altro strumento, ad esempio diff per confronta le cartelle di origine e destinazione sono equivalenti.

Se diff non fornisce il controllo incrementale che cerchi, considera il confronto degli hash md5 dai contenuti di origine e destinazione. Vedi Come posso calcolare un checksum md5 di una directory?

    
risposta data 21.02.2014 - 15:23
fonte

Leggi altre domande sui tag