Faça backup do seu diretório pessoal com rsync e pule pastas inúteis

24

Você pode facilmente fazer backup da sua pasta pessoal em um disco rígido externo com o

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

Excluí a pasta .cache porque acho que nunca precisarei dela quando precisar reinstalar esse backup.

Encontrei esta lista de todas as pastas que eu poderia excluir em um backup normal aqui:
Quais arquivos e diretórios podem ser excluídos de um backup do diretório inicial?

Eu criei uma lista desta resposta que contém alguns comentários neste formulário:

#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

Aqui está a lista completa no gist

Como posso adicionar esta lista ao meu comando rsync?

rubo77
fonte
1
além do mais .Trash, também há frequentemente .Trash-1000(pelo menos no Ubuntu-MATE 14 atual), então é melhor se contentar com isso .Trash-*?
27617 Frank Nocke

Respostas:

40

A lista de exclusões pode conter apenas nomes de arquivos, nomes de pastas e linhas começando com #. Um comentário por trás do nome da pasta não é permitido. Criei um repositório Git com todos os arquivos e pastas conhecidos que são supérfluos:

Faça o download desta lista de ignorados em / var / tmp / ignorelist

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

Em seguida, inicie o rsync com

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

Nota:
Na lista de ignorantes, há uma seção no início com pastas, diretórios, provavelmente que não valem um backup.

rubo77
fonte
2
Você pode combinar os dois comandos, já que rsyncpode ler stdin:wget https://... -O - | rsync -a --progress --exclude-from=- ...
muru 4/04
8
bom ponto, mas acho que é recomendável primeiro a olhar para o Ignorelist antes de iniciar o rsync
rubo77
surpreendentemente node_modulesnão está na lista
jchook
você não deseja manter node_modulesem alguns de seus diretórios de configuração? Imagine que você deseja mover seu diretório pessoal para um novo computador, precisando mantê-los.
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
fonte
Há essa lista um, eu editei a minha pergunta
rubo77
@ rubo77 Eu mantenho minha afirmação de que não há uma lista de todas as pastas que você pode excluir. Essa é uma recomendação, e duvido que até Lekenstyn diria que é uma lista completa.
Muru
A lista doesn''t tem que ser completo eu só gostaria de criar meu backup mais rápido para pular pastas inúteis óbvias
rubo77
@ rubo77 Acho que você terá que mudar os comentários para linhas diferentes.
Muru
thx, eu atualizei o arquivo essência para que os comentários estão em linhas simples
rubo77
0

Poderia tentar isso se diretórios e arquivos contidos forem tudo o que você deseja fazer backup. Exclui todos os diretórios ocultos.

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

arth
fonte
Você pode ser "cotação ausente" mais específica?
Arth
Oh, desculpe - eu fui conciso e estraguei tudo com um erro de digitação: "cotação" em vez de "aspas" ausentes.
Volker Siegel
O shell pode expandir o *(talvez não naquele lugar?). Os caminhos devem ser citado - o nome de usuário não pode conter um espaço, mas /media/pode ser /Old Media/mais ou menos ...
Volker Siegel
Peço desculpas por não estar entendendo. O '. *' Não deve incluir nenhum '.' padrão que são diretórios ocultos no diretório inicial '/ home / $ USER /' para o destino do backup: disco rígido externo ou pen drive '/ media / $ USER / folder'. Ao fazer isso, apenas os diretórios e arquivos reais estão sendo copiados. Se você está apontando outra coisa, por favor, elabore.
Arth
4
Não é realmente sensefull para excluir todos os diretórios começando com um ponto, por exemplo diretório .thunderbird é um dos diretórios mais importantes
rubo77