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?

rubo77
fuente
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.

rubo77
fuente
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.
muru
fuente
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

art
fuente
¿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