Haga una copia de seguridad de su directorio personal con rsync y omita carpetas inútiles


24

Puede hacer fácilmente una copia de seguridad de su carpeta de inicio en un disco duro externo con

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

Excluí la carpeta .cache porque creo que nunca la necesitaré cuando tenga que volver a instalar desde esta copia de seguridad.

Encontré esta lista de todas las carpetas que podría excluir en una copia de seguridad normal aquí:
¿Qué archivos y directorios se pueden excluir de una copia de seguridad del directorio de inicio?

Creé una lista de esta respuesta que contiene algunos comentarios en este formulario:

#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

Aquí está la lista completa en gist

¿Cómo puedo agregar esta lista a mi comando rsync?


1
Además .Trash, con frecuencia también hay .Trash-1000(bajo Ubuntu-MATE 14 actual al menos), ¿así que mejor conformarse con .Trash-*?
— Frank Nocke

Respuestas:


40

La lista de exclusión solo puede contener nombres de archivo, nombres de carpeta y líneas que comienzan con #. No se permite un comentario detrás del nombre de la carpeta. Creé un repositorio Git con todos los archivos y carpetas conocidos que son superfluos:

Descargue este ignorelist en / var / tmp / ignorelist

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

Luego, inicie el rsync con

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

Nota:
En el ignorelist hay una sección al inicio con carpetas, que son directorios, probablemente no valen una copia de seguridad.


2
Se pueden combinar los dos comandos, ya que rsyncse puede leer de stdin:wget https://... -O - | rsync -a --progress --exclude-from=- ...
— Muru

8
buen punto, pero creo que es recomendable primero mirar al ignorante antes de comenzar el rsync
— rubo77

sorprendentemente node_modulesno está en la lista
— jchook

¿no quieres guardar node_modulesen algunos de tus directorios de configuración? Imagina que quieres mover tu directorio personal a una nueva computadora, entonces deberías conservarlos.
— 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.

Hay una lista así,
— edité

@ rubo77 Respaldo mi afirmación de que no hay una lista de todas las carpetas que podría excluir. Esa es una recomendación, y dudo que incluso Lekenstyn diga que es una lista completa.
— muru

La lista doesn''t tiene que ser completa acabo le gustaría crear mi copia de seguridad más rápido así que evita las carpetas inútiles obvias
— rubo77

@ rubo77 Creo que tendrá que cambiar los comentarios a diferentes líneas.
— muru

Gracias, actualicé el archivo Gist para que los comentarios estén en una sola línea
— rubo77

0

Podría intentar esto si los directorios y archivos dentro son todo lo que desea hacer una copia de seguridad. Excluye todos los directorios ocultos.

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


¿Puedes ser más específico "cita faltante"?
— art

Oh, lo siento. Fui conciso y lo confundí con un error tipográfico: "cita" en lugar de "citas" faltantes.
— Volker Siegel

El caparazón podría expandir el *(¿tal vez no en ese lugar?). Las rutas deben ser citadas: el nombre de usuario no puede contener un espacio, pero /media/podría ser más /Old Media/o menos ...
— Volker Siegel

Pido disculpas, no lo entiendo. El '. *' No debe incluir ningún '.' patrón que son directorios ocultos en el directorio de inicio '/ home / $ USER /' al destino de la copia de seguridad: disco duro externo o pen drive '/ media / $ USER / folder'. Al hacer esto, solo los directorios y archivos reales están siendo respaldados. Si está señalando algo más, explique.
— art

44
No tiene mucho sentido excluir todos los directorios que comienzan con un punto, por ejemplo, el directorio .thunderbird es uno de los directorios más importantes
— rubo77
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.