Utilizzo di rsync per il backup

10

Attualmente eseguo il backup dei contenuti di un disco rigido esterno A di (1) cancellando tutto nel disco rigido esterno di destinazione B e (2) copiando tutto da A a B (nel Finder). Il disco rigido esterno contiene solo "dati di base" (cartelle, immagini, video, documenti, ecc.), Niente di strano / strano.

Ma con tutti gli straordinari strumenti gratuiti che esistono non riesco a trovarne uno decente da copiare (suggerimenti accettati).

Voglio automatizzare questo. Dopo alcune ricerche, sembra che io possa usare rsync . Voglio quindi automatizzare questo usando rsync per evitare di copiare i file che sono già sul disco fisso di destinazione (ovviamente, se è stata apportata una modifica, voglio aggiornare il file / cartella, lo stesso con i file / cartelle cancellati o nuovi file / cartelle, l'idea è di imitare ciò che faccio di solito manualmente con Finder).

Sono arrivato a questo punto

rsync -av --progress --delete /Volumes/A/ /Volumes/B

Ora il registro è pieno di file il cui nome inizia con . o ._ o anche ._. . Sono necessari?

Domanda

Come posso copiare solo i file che contano, lasciando tutti quelli che non contano. Ad esempio, se ho photo.png mi aspetterei di copiare photo.png , non ._photo.png o molti file.

Quali --exclude o --exclude-from possono essere usati tranquillamente su un Mac? Può essere una buona regola è "basta copiare tutto ciò che mostra Finder", che è quello che vorrei copiare se passassi manualmente attraverso tutte le cartelle.

Domanda aggiuntiva

È sufficiente -av --progress --delete ? Sto commettendo un crimine o rischiando alcuni dati? Quali opzioni useresti.

Per favore, rispondi alla tua risposta con alcuni argomenti, lo apprezzerei.

Sto cercando un modo per automatizzare rsync che sembra abbastanza potente e gratuito da usare.

    
posta Manuel 24.01.2016 - 12:37
fonte

5 risposte

16

Per la massima sicurezza, copia tutto

L'opzione più sicura è quella di copiare tutto , inclusi i file di meta-dati invisibili.

I file tendono ad esistere per una ragione e, come il software cambia, così l'esistenza, lo scopo e il contenuto di questi file di meta-dati. Copiare tutto ridurrà il carico di manutenzione e offrirà la massima tranquillità che nulla vada perso.

Il file di registro creato da rsync sarà tecnicamente coinvolto dalla natura stessa di rsync di essere uno strumento da riga di comando. Prendi in considerazione la possibilità di presentare un riordino, metadati filtrati e, forse, anche un output codificato colorato per l'utente. Puoi farlo con una vasta gamma di strumenti e linguaggi di scripting. Per favore fai altre domande qui su Chiedi a diversi e su StackOverflow se hai bisogno di aiuto con questo approccio.

Elimina ultimo & Copia risorse OS X

Per quanto riguarda i flag rsync , dai un'occhiata alla domanda Il modo più veloce e sicuro per copiare enormi dati da un'unità esterna a un'altra . In questa domanda vengono utilizzati e spiegati alcuni flag aggiuntivi:

sudo rsync -vaE --progress --delete-after /Volumes/SourceName /Volumes/DestinationName

In questa situazione, E garantirà che i fork delle risorse e altre proprietà specifiche di Mac vengano copiate.

Potresti considerare --delete-after per evitare l'eliminazione fino al completamento della copia; si prega di notare che questo approccio richiederà potenzialmente un'unità di destinazione due volte la dimensione della sorgente.

Esclusioni possibili

Una risposta a una domanda correlata, Come posso omettere file di rendering FCPX da un backup di Time Machine? , fornito un utile collegamento di File e cartelle OS X che possono essere esclusi dalla maggior parte dei backup . Questo link fornisce un elenco pratico di modelli di file, cartelle e percorsi che è possibile escludere.

Includi file punto

Esistono buoni motivi per eseguire il backup di file che iniziano con punti, .* file corrispondenti.

Alcuni software mantengono le preferenze, le impostazioni e altre informazioni di valore nelle cartelle nella parte superiore della cartella dell'utente in cartelle con punti prefissati invisibili. L'esecuzione di ls -la ~/ rivelerà queste cartelle e file.

Se un utente utilizza o ha un software che utilizza a sua volta il software di controllo della versione, assicurarsi di eseguire il backup dei file punto. Software come sovversione e git sono entrambi critici informazioni all'interno delle loro cartelle di punti. Queste cartelle nascoste possono essere disseminate sul tuo file system, dove viene sempre estratto un progetto.

Spotlight e accesso al disco

Spotlight è il servizio di ricerca di OS X. Spotlight utilizza il processo mdworker per indicizzare e aggiornare il catalogo di ricerca. Se sei preoccupato di possibili danneggiamenti del disco o copie lente, disabilitando mdworker mentre correre rsync può aiutare. Personalmente, lascio Spotlight in esecuzione mentre eseguo trasferimenti di rsync di grandi dimensioni.

    
risposta data 24.01.2016 - 16:53
fonte
3

Sconsiglio di eliminare i meta-dati durante il backup, in particolare i dot-file , ad es. ._$filename , tuttavia se vuoi davvero escludere i dot-file dal tuo comando rsync aggiungi --exclude '.*' ad esso.

rsync -av --exclude '.*' --progress --delete /Volumes/A/ /Volumes/B
    
risposta data 24.01.2016 - 16:33
fonte
3

Se stai utilizzando rsync versione 3.0.6 come per Carbon Copy Cloner o 3.1.2 come per Homebrew, puoi prendere spunto dagli argomenti di Carbon Copy Cloner:

rsync -A -X -H -p --fileflags --force-change -l -N -rtx --protect-decmpfs --numeric-ids -go --delete-during --backup --backup-dir=</PATH/TO/STICK/BACKUP_when_using_delete> --protect-args <SRC>/ <DEST>

    
risposta data 29.08.2017 - 21:51
fonte
2

Ho usato rsync per i backup a diversi lavori e lo uso a casa.

Lo consiglio vivamente, ma con alcune modifiche. Come strumento di backup, è fantastico, ma come strumento di archiviazione è un po 'piatto. Sì, copia tutto, ma non ottieni versioni di tutto, ottieni sempre solo le ultime versioni.

Ho utilizzato questa guida link come punto di partenza. Leggi l'intera pagina. Fa un ottimo lavoro di spiegazione delle opzioni e delinea come è possibile implementare i backup incrementali. E sorprendentemente, l'articolo ha più di 10 anni ma è ancora applicabile oggi. Devo amare unix.

    
risposta data 01.02.2016 - 11:18
fonte
2

Non sono completamente soddisfatto delle risposte attuali, ma cercherò di illustrare qui alcune delle possibilità che ho visto sul Web cercando di trovare una buona configurazione per rsync .

E, a proposito, se uno è interessato a Time Machine come le copie, c'è rsnapshot . E c'è anche Unison per le sincronizzazioni bidirezionali. Inoltre, ci sono in realtà alcune GUI, come Utility di backup e arRsync ; non esattamente quello che stavo cercando, ma potrebbero fare il lavoro per qualcuno.

In primo luogo, la mia unica intenzione era quella di duplicare foto e video, quindi non era necessaria la copia esatta, quindi non è necessario preoccuparsi di troppo . In effetti, la maggior parte dei miei dubbi riguardava la possibilità di escludere tutto (lo stesso che accadrebbe se, ad esempio, scaricassi una foto da Internet, semplicemente scarica un file .png, tutto il resto non viene scaricato ma generato automaticamente ).

Ecco un elenco non strutturato di pensieri che potresti voler prendere in considerazione

  • Se vuoi assicurarti che il tuo laptop non vada in stop, potresti voler caffeinate process caffeinate -s rsync -av ... . Tratto da qui .

  • Se stai facendo delle copie locali, come nel mio caso, o anche se la connessione internet non è troppo lenta, dovresti non usare l'opzione -z (compressione), e usare -W (trasferisci tutto il file, piuttosto che i trasferimenti delta, questo è un default quando locale) e probabilmente usa --inplace per effettuare trasferimenti veloci. Tratto da qui .

  • Puoi usare --delete-after in modo tale che ogni file venga prima trasferito, quindi spostato sulla destinazione (e cancellato quello originale) ed è più sicuro dell'eliminazione prima del trasferimento o durante il trasferimento.

  • Puoi interrompere il trasferimento premendo ctrl + C , e si fermerà in modo pulito. Tratto da qui . Questa era una delle mie paure con SuperDuper !, se hai bisogno di interrompere un trasferimento, ricevi il messaggio "Lascerai il disco rigido in uno stato sconosciuto ...".

  • Nelle versioni recenti c'è --info=progress2 che aggiunge ancora più dettagli a -v .

  • C'è -P (che equivale a --partial e --progress ) che lascerà lì i file trasferiti a metà in modo da poter andare avanti quando riavvii il processo (se per qualche motivo non puoi terminare sincronizzazione simultanea).

  • Si potrebbe essere interessati a fermare Spotlight o TimeMachine prima di fare la copia e riattivarli dopo il trasferimento. E persino disabilitare Spotlight per il disco esterno.

  • Altre opzioni utilizzate in tutti questi riferimenti includono -x (o --one-file-system ), -E ( --executability ), -H ( --hard-links ), -X ( --xattrs ) , -A ( --acls ) e --sparse , --hfs-compression , --protect-decmpfs . Potresti volerne dare un'occhiata.

Per me, sembra un comando di base (potrei usare più opzioni, ma questo è sufficiente per un esempio):

caffeinate -s rsync -av --delete-after --progress --stats --exclude-from 'excludefile.txt' \
  "/Volumes/SrcHDD/" "/Volumes/DstHDD" # note the trailing slash / after the source

Ora nel mio caso potrei semplicemente includere {*.jpg,*.png,*.mp4,*.txt,*.pdf,…} e nessuno direbbe "hai bisogno anche dei file di sistema" ma poiché non voglio cercare di ottenere tutto il possibile tipo di file di cui ho i file, preferisco escludere . E ci sono cose che non solo possono essere, ma sembrare convenienti da escludere.

Ho trovato alcuni link, prendi ciò che vuoi:

  1. link

  2. link

  3. link

  4. link

  5. link

  6. link

  7. link

E da lì probabilmente potresti ottenere ciò che è sicuro o sano da ignorare. Ecco l'elenco completo (ho appena rimosso i duplicati)

.HFS+ Private Directory Data*
/.journal
/.journal_info_block
.AppleDouble
.AppleDB
/lost+found

.metadata_never_index
.metadata_never_index_unless_rootfs
/.com.apple.timemachine.donotpresent
.VolumeIcon.icns
/System/Library/CoreServices/.disk_label*
/TheVolumeSettingsFolder

.DocumentRevisions-V100*
.Spotlight-V100
/.fseventsd
/.hotfiles.btree
/private/var/db/systemstats

/private/var/db/dyld/dyld_*
/System/Library/Caches/com.apple.bootstamps/*
/System/Library/Caches/com.apple.corestorage/*
/System/Library/Caches/com.apple.kext.caches/*

/.com.apple.NetBootX

/Volumes/*
/dev/*
/automount/*
/Network/*
/.vol/*
/net

/private/var/folders/zz/*
/private/var/vm/*
/private/tmp/*
/cores/*

.Trash
.Trashes

/Backups.backupdb
/.MobileBackups
/.MobileBackups.trash
/.MobileBackups.trash

Library/Mobile Documents.*
.webtmp

/Library/Caches/CrashPlan
/PGPWDE01
/PGPWDE02
/.bzvol
/Library/Application Support/Comodo/AntiVirus/Quarantine
/private/var/spool/qmaster
$Recycle.Bin
Saved Application State
Library/Preferences/ByHost/com.apple.loginwindow*

.AppleDesktop
.com.apple.timemachine.supported
Network Trash Folder
/Library/Caches/*
/private/var/spool/postfix/*
$RECYCLE.BIN
/stuff/*
/afs/*
/private/var/run/*
/Previous Systems.localized
/tmp/*
.dbfseventsd
.DS_Store
.PKInstallSandboxManager
.SymAV*
.symSchedScanLockxz
.TemporaryItems
Desktop DB
Desktop DF
hiberfil.sys
pagefile.sys
Recycled
RECYCLER
System Volume Information
Temporary Items
Thumbs.db
AUTORUN.INF
Autorun.inf
autorun.inf
    
risposta data 02.02.2016 - 02:32
fonte

Leggi altre domande sui tag