Esegui il backup della tua home directory con rsync e salta le cartelle inutili


24

È possibile eseguire facilmente il backup della cartella principale su un disco rigido esterno con

rsync -a --exclude=.cache --progress /home/$USER /media/linuxbackup/home/$USER

Ho escluso la cartella .cache perché penso che non mi servirà mai quando devo reinstallare da questo backup.

Ho trovato questo elenco di tutte le cartelle che potrei escludere in un normale backup qui:
quali file e directory possono essere esclusi da un backup della home directory?

Ho creato un elenco di questa risposta che contiene alcuni commenti in questo modulo:

#These directories may be excluded:

.gvfs                           # contains mounted file systems?
.local/share/gvfs-metadata
.Private                        # contains the actual encrypted home directory
.dbus                           # session-specific
.cache
.Trash                          # do I need to say more?
.local/share/Trash
.cddb                           # cached info about audio CDs
.aptitude                       # cached packages lists

#Flash-specific:

.adobe                          # Cache for flash, maybe others?
.macromedia   # except for Flash persistence, there is no reason to keep this

#Files:

.xsession-errors            # contains errors from the current graphical session
.recently-used              # recently used files
.recently-used.xbel
.thumbnails

Ecco l'elenco completo su gist

Come posso aggiungere questo elenco al mio comando rsync?


1
inoltre .Trash, ci sono spesso .Trash-1000(almeno con l'attuale Ubuntu-MATE 14), quindi meglio accontentarsi di .Trash-*?
Frank Nocke,

Risposte:


40

L'elenco di esclusione può contenere solo nomi di file, nomi di cartelle e righe che iniziano con #. Non è consentito un commento dietro il nome utente. Ho creato un repository Git con tutti i file e le cartelle conosciuti che sono superflui:

Scarica questo ignorante in / var / tmp / ignorelist

wget https://raw.githubusercontent.com/rubo77/rsync-homedir-excludes/master/rsync-homedir-excludes.txt -O /var/tmp/ignorelist

Quindi avviare rsync con

rsync -aP --exclude-from=/var/tmp/ignorelist /home/$USER/ /media/$USER/linuxbackup/home/

Nota:
nell'ignorelist c'è una sezione all'inizio con cartelle, che sono directory, probabilmente non meritano un backup.


2
È possibile combinare i due comandi, poiché è rsyncpossibile leggere da stdin:wget https://... -O - | rsync -a --progress --exclude-from=- ...
muru

8
buon punto, ma penso che sia consigliabile prima guardare l'ignorista prima di iniziare la rsync
rubo77

sorprendentemente node_modulesnon è nella lista
jchook il

non vuoi conservare node_modulesalcune delle tue directory di configurazione? Immagina di voler spostare la tua home directory su un nuovo computer, allora dovrai conservarli.
rubo77,

4

Da man rsync:

 --exclude-from=FILE     read exclude patterns from FILE
          This option is related to the --exclude option, but it specifies
          a FILE that contains exclude patterns  (one  per  line).   Blank
          lines  in  the  file  and  lines  starting  with  ’;’ or ’#’ are
          ignored.  If FILE is -, the list  will  be  read  from  standard
          input.

C'è un tale elenco, ho modificato la mia domanda
rubo77

@ rubo77 Attendo la mia affermazione che non esiste un elenco di tutte le cartelle che è possibile escludere. Questa è una raccomandazione e dubito che anche Lekenstyn direbbe che è un elenco completo.
muru,

L'elenco non deve essere completo Vorrei solo creare il mio backup più velocemente, quindi salta le cartelle ovvie inutili
rubo77

@ rubo77 Penso che dovrai spostare i commenti su righe diverse.
muru,

grazie, ho aggiornato il file gist in modo che i commenti siano su singole righe
rubo77

0

Potresti provare questo se le directory e i file all'interno sono tutto ciò di cui vuoi eseguire il backup. Esclude tutte le directory nascoste.

rsync -aP --exclude=.* /home/$USER/ /media/$USER/folder


Puoi essere più specifico "preventivo mancante"?
arth

Oh, scusa, ero conciso, e ho sbagliato un errore di battitura: mancava "virgolette" anziché "virgolette".
Volker Siegel,

La shell potrebbe espandere il *(forse non in quel posto?). I percorsi dovrebbero essere citati - il nome utente non può contenere uno spazio, ma /media/potrebbe essere /Old Media/così ...
Volker Siegel,

Mi scuso per non averlo capito. '. *' Non deve includere alcun '.' pattern che sono directory nascoste nella directory home '/ home / $ USER /' nella destinazione di backup: hdd esterno o pen drive '/ media / $ USER / cartella'. In questo modo, solo le directory e i file effettivi vengono sottoposti a backup. Se stai indicando qualcos'altro, ti preghiamo di elaborare.
arth

4
In realtà non è sensefull di escludere tutte le directory che iniziano con un punto, ad esempio directory .thunderbird è una delle directory più importanti
rubo77
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.