sistema Rsync'ing, excluir parece não funcionar

1

Estou tentando fazer um backup completo do sistema de arquivos de um servidor através de rsync , seguindo este guia . Estou usando o seguinte comando:

rsync -aAXH --progress --delete --stats --exclude={\
    "/dev/*",\
    "/proc/*",\
    "/sys/*",\
    "/tmp/*",\
    "/run/*",\
    "/mnt/*",\
    "/media/*",\
    "/lost+found"}\
    /* \
    newserver:/mnt/oldserver-backup

No entanto, ele ainda faz o backup das pastas /media/x , fazendo com que não haja espaço suficiente no destino. Como isso pode ser corrigido?

    
por dtech 25.09.2014 / 10:13

2 respostas

3

A construção --exclude={x,y,z} só funciona no bash e precisa estar em uma linha sem espaços, só então pode bash expandir isso corretamente.

Sugiro colocar a lista em um arquivo separado e usar --exclude-from=file , ou fazer como megahallon sugere e repita a parte da opção --exclude = você mesmo.

Note também que você geralmente NÃO quer /* como sua fonte; deixe o rsync cuidar de recursing, portanto, apenas especifique / . Dessa forma, os arquivos de ponto também são copiados. Eu também sempre adiciono uma barra ao diretório de destino para evitar surpresas; um bom hábito de entrar.

    
por 25.09.2014 / 16:07
1

Da página rsync man

   Note also that the --filter, --include, and --exclude options take one
   rule/pattern each. To add multiple ones, you can repeat the options on     
   the command-line, use the merge-file syntax of the --filter option, or  
   the --include-from/--exclude-from options.

Então, no seu caso, você provavelmente só quer repetir o --exclude para cada diretório.

    
por 25.09.2014 / 10:20

Tags