zfs diff
zfs diff コマンドで表示されるのは、新しい方の値らしい。
# zfs-diff-long.sh data-a@130829 data-a > zfs-diff.txt # zfs-diff-long.sh -E data-a@130829 > zfs-diff@130829.txt # zfs-diff-long.sh -E data-a > zfs-diff@latest.txt # diff xxx.zip zfs-diff*.txt zfs-diff.txt: 1377796042.173347920 + F 153510 153496 588458531 1 +0 1000 1000 1377796042.173347920 1271246288.000000000 1380034046.692823670 1289647809.332299246 /data/xxx.zip - zfs-diff@130829.txt:1321541261.555379372 + F 153510 153496 588458531 1 +0 1000 1000 1321541261.555379372 1271246288.000000000 1312597694.414690065 1289647809.332299246 /data/xxx.zip - zfs-diff@latest.txt:1377796042.173347920 + F 153510 153496 588458531 1 +0 1000 1000 1377796042.173347920 1271246288.000000000 1380034046.692823670 1289647809.332299246 /data/xxx.zip -
こんなスクリプトで出力。第一引数の方を「-E」にすると、空のsnapshotと比較する指定になって、該当するファイルシステム上のすべてのファイルが出力される。
#! /bin/sh zfs diff -H -tF \ -o object \ -o parent \ -o size \ -o links \ -o linkschange \ -o user \ -o group \ -o ctime \ -o mtime \ -o atime \ -o crtime \ -o name \ -o oldname \ "$1" \ "$2"
アクセス日時の変更でも、zfs diffに出力される。アクセス日時の記録は不要なのでoffにした。
# zfs get atime NAME PROPERTY VALUE SOURCE data-a atime on default # zfs set atime=off data-a # zfs get atime NAME PROPERTY VALUE SOURCE data-a atime off local