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?


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.


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.

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.