Primeiro, você deve ler um pouco sobre a sintaxe de inclusão / exclusão do rsync. Tenho a sensação de que o que você quer fazer é melhor usando **
globs do que *
globs. ( **
Se expande para qualquer número de entradas, enquanto *
expande somente para uma única entrada, possivelmente combinando múltiplas diretório entradas. Os detalhes estão em man rsync
sob Inclusão / Exclusão Regras Padrão .)
Dito isto, se você deseja restaurar o sistema para um estado de trabalho conhecido a partir do backup com um mínimo de problemas, você deve ter cuidado ao excluir arquivos ou diretórios. Eu mesmo uso o rsnapshot e, na verdade, adotei a abordagem oposta: inclua tudo, exceto alguns diretórios cuidadosamente selecionados.
Portanto, meu rsnapshot.conf realmente declara (com guias para deixar o analisador de arquivos de configuração do rsnapshot feliz):
interval backup NNN # pick your poison
one_fs 0
exclude /backup/**
exclude /dev/**
exclude /proc/**
exclude /run/**
exclude /sys/**
exclude /tmp/**
backup / ./
e muito pouco mais. Sim, significa que eu posso copiar um pouco mais do que o estritamente necessário, mas garante que qualquer coisa não pretendida como epérmica seja copiada. Devido ao rsnapshot usar o comportamento de link direto para desduplicar do rsync, o único custo real para isso é durante a primeira execução; depois disso, supondo que você tenha um local de destino de backup de tamanho razoável (comparado ao tamanho total do conjunto de dados), é preciso muito pouco tempo ou espaço em disco. Excluo o conteúdo de / backup porque é aqui que monto o sistema de arquivos de destino de backup; não excluí-lo levaria à situação de copiar o backup para si próprio. No entanto, para simplificar, se eu precisar restaurar o bare metal, quero manter o ponto de montagem!
No meu caso, também não posso usar razoavelmente one_fs 1
; Eu executo o ZFS com atualmente ~ 40 sistemas de arquivos. Listar todos esses itens explicitamente seria um pesadelo de manutenção e tornaria o trabalho com sistemas de arquivos ZFS muito mais envolvido do que o necessário.
De qualquer maneira, praticamente qualquer coisa que você queira excluir acima e além do acima dependerá da distribuição; portanto, é praticamente impossível fornecer uma resposta genérica. Dito isto, é provável que você encontre alguns candidatos em / var.
exclude /somepath/*
está perfeitamente bem neste caso; exclui tudo/somepath/
, como esperado. Você não precisa,**
porque não há necessidade de olhar mais profundamente quando tudo/somepath/
já está excluído.