Existe um diff sensível ao ZFS?

3

Costumo fazer com que os instantâneos de um volume do ZFS (contendo AOSP) façam algumas alterações (geralmente extrair arquivos ZIP acima do topo ou executar scripts) e depois executar diff para ver o que mudou.

Isso é muito fácil com o ZFS:

diff /mnt/vol /mnt/vol/.zfs/2017-10-18_snapshot

Demora muito tempo quando "vol" contém 63 GB de arquivos, na maioria pequenos.

O ZFS obviamente tem a informação sobre quais arquivos são diferentes, já que os instantâneos são Copy-on-Write.

Existe um diff sensível ao ZFS que pode simplesmente solicitar ao ZFS a resposta?

    
por fadedbee 18.10.2017 / 17:27

1 resposta

3

Na verdade, existe e até mesmo o nome zfs diff ( documentação e exemplos )

$ zfs diff tank/home/tim@snap1 tank/home/tim@snap2
M       /tank/home/tim/
+       /tank/home/tim/fileB

Você também pode diferenciar entre instantâneo e conjunto de dados ativo, mas somente dentro do mesmo conjunto de dados e descendentes, e somente em ordem temporal válida (significando antigo para novo em vez de novo para antigo, apenas trocar os argumentos se ele não funcionar primeiro ). Os resultados possíveis são:

M : File or directory has been modified or file or directory link has changed
- : File or directory is present in the older snapshot but not in the more recent snapshot
+ : File or directory is present in the more recent snapshot but not in the older snapshot
R : File or directory has been renamed

Para filtrar os resultados e usá-los em scripts, veja também o exemplo no comentário em minha outra resposta no StackOverflow.

    
por 19.10.2017 / 10:02