Sichern Sie Ihr Home-Verzeichnis mit rsync und überspringen Sie unnötige Ordner

24

Mit können Sie ganz einfach Ihr Home-Verzeichnis auf einer externen Festplatte sichern

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

Ich habe den .cache-Ordner ausgeschlossen, da ich glaube, dass ich ihn nie benötige, wenn ich ihn von dieser Sicherung neu installieren muss.

Ich habe die folgende Liste aller Ordner gefunden, die ich bei einer normalen Sicherung ausschließen konnte:
Welche Dateien und Verzeichnisse können von einer Sicherung des Basisverzeichnisses ausgeschlossen werden?

Ich habe eine Liste dieser Antwort erstellt, die einige Kommentare in dieser Form enthält:

#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

Hier ist die vollständige Liste im Überblick

Wie kann ich diese Liste meinem rsync-Befehl hinzufügen?

rubo77
quelle
1
außerdem .Trashgibt es häufig auch .Trash-1000(unter aktuellem Ubuntu-MATE 14 zumindest), also besser zufrieden geben .Trash-*?
Frank Nocke

Antworten:

40

Die Ausschlussliste darf nur Dateinamen, Ordnernamen und Zeilen enthalten, die mit beginnen #. Ein Kommentar hinter dem Ordnernamen ist nicht erlaubt. Ich habe ein Git-Repository mit allen bekannten Dateien und Ordnern erstellt, die überflüssig sind:

Laden Sie diese Ignoranzliste in das Verzeichnis / var / tmp / ignorelist herunter

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

Dann starten Sie den rsync mit

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

Hinweis:
In der Ignoranzliste befindet sich am Anfang ein Abschnitt mit Ordnern, bei denen es sich um Verzeichnisse handelt, die wahrscheinlich keine Sicherung wert sind.

rubo77
quelle
2
Sie können die beiden Befehle kombinieren, da rsyncaus lesen kann stdin:wget https://... -O - | rsync -a --progress --exclude-from=- ...
muru
8
Das ist ein guter Punkt, aber ich denke, es ist empfehlenswert, zuerst die Ignoranzliste zu lesen, bevor Sie rsync
rubo77
überraschenderweise node_modulesnicht auf der Liste
jchook
Willst du nicht node_modulesin einigen deiner Konfigurationsverzeichnisse bleiben ? Stellen Sie sich vor, Sie möchten Ihr Home-Verzeichnis auf einen neuen Computer verschieben, die müssten Sie dann behalten.
Rubo77
4

Von 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.
muru
quelle
Es gibt eine solche Liste, ich habe meine Frage bearbeitet
rubo77
@ rubo77 Ich stehe zu meiner Aussage, dass es keine Liste aller Ordner gibt, die Sie ausschließen könnten . Das ist eine Empfehlung, und ich bezweifle, dass sogar Lekenstyn sagen würde, dass es eine vollständige Liste ist.
muru
Die Liste muss nicht vollständig sein. Ich möchte nur mein Backup schneller erstellen, überspringe also offensichtlich nutzlose Ordner
rubo77
@ rubo77 Ich denke du musst die Kommentare in verschiedene Zeilen verschieben.
Muru
thx, ich habe die gist-Datei aktualisiert, so dass die Kommentare in einzelnen Zeilen stehen
rubo77
0

Versuchen Sie dies, wenn Sie nur Verzeichnisse und Dateien sichern möchten. Schließt alle versteckten Verzeichnisse aus.

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

arth
quelle
Können Sie genauer sagen, dass "Quotest fehlt"?
Arth
Oh, sorry - ich war knapp und habe es durch einen Tippfehler durcheinander gebracht: "Zitat" statt "Anführungszeichen" fehlt.
Volker Siegel
Die Schale könnte das erweitern *(vielleicht nicht an dieser Stelle?). Die Pfade sollten in Anführungszeichen gesetzt werden - der Benutzername darf kein Leerzeichen enthalten, /media/könnte aber /Old Media/so sein ...
Volker Siegel
Ich entschuldige mich, dass ich es nicht verstehe. Das '. *' Darf kein '.' Muster, bei dem es sich um versteckte Verzeichnisse im Ausgangsverzeichnis '/ home / $ USER /' zum Sicherungsziel handelt: externe Festplatte oder USB-Stick '/ media / $ USER / folder'. Auf diese Weise werden nur die tatsächlichen Verzeichnisse und Dateien gesichert. Wenn Sie auf etwas anderes zeigen, erläutern Sie dies bitte.
Arth
4
Es ist nicht wirklich sinnvoll, alle Verzeichnisse auszuschließen, die mit einem Punkt beginnen, z. B. .thunderbird ist eines der wichtigsten Verzeichnisse
rubo77