web-dev-qa-db-fra.com

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

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 dois le réinstaller à partir de cette sauvegarde.

J'ai trouvé cette liste de tous les dossiers que je pouvais exclure d'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?

22
rubo77

La liste d'exclusion ne peut contenir que des noms de fichier, des noms de dossier 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 ceci ignorelist vers/var/tmp/ignorelist

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

Puis lancez le rsync avec

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

Remarque:
Dans la liste des ignorants, il existe au début une section avec des dossiers, qui sont des répertoires, qui ne méritent probablement pas une sauvegarde.

38
rubo77

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.
4
muru

Vous pouvez essayer ceci si les répertoires et les fichiers qu'il contient sont tout ce que vous voulez sauvegarder. Exclut tous les répertoires cachés.

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

0
arth