Есть ли разница в ZFS?

492
fadedbee

Я часто делаю снимки тома ZFS (содержащего AOSP), делаю некоторые изменения (часто извлекаю ZIP-файлы поверх или запускаю сценарии) и затем запускаю, diffчтобы посмотреть, что изменилось.

Это действительно легко с ZFS:

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

Это занимает очень много времени, когда «vol» содержит 63 ГБ в основном небольших файлов.

Очевидно, что ZFS содержит информацию о том, какие файлы различаются, так как снимки являются копией при записи.

Есть ли ZFS-ориентированный diff, который может просто спросить у ZFS ответ?

4

1 ответ на вопрос

3
user121391

На самом деле есть, и он даже назван zfs diff( документация и примеры )

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

Вы также можете различать моментальный снимок и активный набор данных, но только внутри одного и того же набора данных и потомков, и только в действительном временном порядке (то есть от старого к новому, а не от нового к старому, просто поменяйте местами аргументы, если он сначала не работает). Возможные результаты:

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 

Чтобы отфильтровать результаты и использовать их в сценариях, см. Также пример в комментарии в моем другом ответе на StackOverflow.