Sauvegardez votre répertoire personnel avec rsync et ignorez les dossiers inutiles


24

Vous pouvez facilement sauvegarder votre dossier personnel sur un disque dur externe avec

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

J'ai exclu le dossier .cache car je pense que je n'en aurai jamais besoin lorsque je devrai réinstaller à partir de cette sauvegarde.

J'ai trouvé cette liste de tous les dossiers que je pouvais exclure dans une sauvegarde normale ici:
Quels fichiers et répertoires peuvent être exclus d'une sauvegarde du répertoire personnel?

J'ai créé une liste de cette réponse qui contient quelques commentaires sous cette forme:

#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

Voici la liste complète sur gist

Comment puis-je ajouter cette liste à ma commande rsync?


1
en plus .Trash, il y en a souvent aussi .Trash-1000(sous Ubuntu-MATE 14 actuel au moins), alors mieux vaut se contenter de .Trash-*?
— Frank Nocke

Réponses:


40

La liste d'exclusion ne peut contenir que des noms de fichiers, des noms de dossiers et des lignes commençant par #. Un commentaire derrière le nom de dossier n'est pas autorisé. J'ai créé un référentiel Git avec tous les fichiers et dossiers connus qui sont superflus:

Téléchargez cette ignorelist dans / var / tmp / ignorelist

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

Ensuite, démarrez le rsync avec

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

Remarque:
Dans l'ignorelist, il y a une section au début avec des dossiers, qui sont des répertoires, qui ne valent probablement pas une sauvegarde.


2
Vous pouvez combiner les deux commandes, car vous rsyncpouvez lire à partir de stdin:wget https://... -O - | rsync -a --progress --exclude-from=- ...
— muru

8
bon point, mais je pense qu'il est recommandé de regarder d'abord l'ignorelist avant de démarrer le rsync
— rubo77

node_modulesn'est étonnamment pas sur la liste
— jchook

ne voulez-vous pas conserver node_modulescertains de vos répertoires de configuration? Imaginez, vous souhaitez déplacer votre répertoire personnel vers un nouvel ordinateur, vous devez alors les conserver.
— rubo77

4

De 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.

Il y a une telle liste, j'ai édité ma question
— rubo77

@ rubo77 Je maintiens ma déclaration selon laquelle il n'y a pas de liste de tous les dossiers que vous pouvez exclure. C'est une recommandation, et je doute que même Lekenstyn dirait que c'est une liste complète.
— muru

La liste ne doit pas être complète, je voudrais juste créer ma sauvegarde plus rapidement, alors sautez les dossiers inutiles évidents
— rubo77

@ rubo77 Je pense que vous devrez déplacer les commentaires sur différentes lignes.
— muru

thx, j'ai mis à jour le fichier gist pour que les commentaires soient sur des lignes simples
— rubo77

0

Pourrait essayer ceci si les répertoires et les fichiers à l'intérieur sont tout ce que vous voulez sauvegarder. Exclut tous les répertoires cachés.

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


Pouvez-vous être plus précis "devis manquant"?
— Arth

Oh, désolé - j'étais laconique et je l'ai gâché par une faute de frappe: "quotest" au lieu de "quotes" manquant.
— Volker Siegel

La coquille pourrait agrandir le *(peut-être pas à cet endroit?). Les chemins doivent être entre guillemets - le nom d'utilisateur ne peut pas contenir d'espace, mais /media/pourrait l'être /Old Media/ou non ...
— Volker Siegel

Je m'excuse, je ne comprends pas. Le '. *' Ne doit pas inclure de '.' modèle qui sont des répertoires cachés dans le répertoire de base '/ home / $ USER /' vers la destination de sauvegarde: disque dur externe ou clé USB '/ media / $ USER / dossier'. Ce faisant, seuls les répertoires et fichiers réels sont en cours de sauvegarde. Si vous pointez autre chose, veuillez préciser.
— Arth

4
Il n'est pas vraiment judicieux d'exclure tous les répertoires commençant par un point, par exemple le répertoire .thunderbird est l'un des répertoires les plus importants
— rubo77
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.