Como rsync a pasta / corretamente?

1

Eu tenho um instantâneo btrfs de / e quero rsync com minha pasta / atual. Como forma de "reversão" se você quiser. Minha pergunta é qual pasta devo evitar, por exemplo, eu devo usar a opção -x para evitar que o rsync vá para outros subvolumes, mas também devo excluir a pasta tmp para evitar que o sistema colapse com mais alguma coisa? e sobre / var, / run, / dev?

    
por Dan 16.01.2015 / 19:59

1 resposta

1

Não tenho certeza se você quer fazer isso com um live cd etc. ou no sistema em execução, então estou respondendo para ambos.

Coisas a considerar em ambos os casos :

a) Use opções apropriadas para o rsync não só para sincronizar arquivos, mas também coisas como data de mudança, máscara de permissão de acesso, Xattrs, informações do Selinux, ACLs estendidas, hard links ... tudo o que puder Faz. Ler toda a lista de opções uma vez para escolher tudo o que é necessário não é ruim.

b) Um instantâneo do Btrfs de um volume inclui apenas este volume. Se você tem, por exemplo. uma partição de inicialização separada montada em / boot, não é coberta pelo backup, por isso não deve ser sincronizada = > sinalizador "-x". Embora, com o processo descrito abaixo, você terá uma visão sem pontos de montagem montados de qualquer maneira.

Se for feito a partir de um live CD :

a) Pastas lime / tmp (se o conteúdo estiver no sistema de arquivos real, em vez de um virtual em tempo de execução), não serão necessárias considerações adicionais. Apenas sobrescreva-os.

b) Coisas virtuais como a maioria das entradas / dev (maioria porque / dev pode conter alguns arquivos reais) não estarão lá se forem visualizadas no live CD = > sem problemas. Os poucos arquivos reais (se houver) podem ser sincronizados com o rsync.

Nada mais me vem à mente neste caso.

Se for feito no sistema em execução :

a) Para evitar interferências com / dev e similares, você precisará de uma visão "pura" do seu sistema de arquivos Btrfs, além de /, sem coisas adicionais montadas. Você pode obtê-lo com mount --bind ... com alguma pasta própria. Tome isso como destino de sincronização.

b) Apenas escrever em um arquivo aberto por algum outro programa pode causar problemas, especialmente arquivos gravados constantemente, como arquivos de log. Excluindo o arquivo antigo e criando um novo com conteúdo próprio, o outro programa acessa o arquivo antigo até o fechamento. O rsync faz isso por padrão, mas preste atenção para não passar opções como --inplace !

c) Assim que o rsync terminar, reboot . A situação toda é complicada o suficiente, então minimize o risco de algum processo misturar seus dados antigos e novos e fazer algo estranho enquanto ainda está rodando.

    
por 23.01.2015 / 13:03