私はよくZFSボリューム(AOSPを含む)のスナップショットを作成し、いくつかの変更を加え(多くの場合、Zipファイルをその上に抽出するか、スクリプトを実行します)、次にdiff
を実行して何が変更されたかを確認します。
これはZFSでは本当に簡単です。
diff /mnt/vol /mnt/vol/.zfs/2017-10-18_snapshot
「vol」に63GBのほとんどが小さいファイルが含まれていると、非常に長い時間がかかります。
スナップショットはコピーオンライトであるため、ZFSには明らかにどのファイルが異なるかに関する情報があります。
ZFSに答えを求めることができるZFS対応の差分はありますか?
実際にあり、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の 他の回答 のコメントの例も参照してください。