- btrfs send --no-data -p $bsub $leaf | head -c 1000 > $tmp || [[ $? == 141 || ${PIPESTATUS[0]} == 32 ]]
- if (( $(stat -c%s $tmp) < 1000)); then
- # example output for an empty diff:
- # Found a valid Btrfs stream header, version 1
- # o.leaf.2019-05-15T14:00:50-0400;snapshot: uuid=ba045ea30737dd449003f1ee40ec12d0, ctrasid=109533, clone_uuid=3c7e3544e486834aa71d89e5b8f30056, clone_ctransid=109533
- lines=$(/a/opt/btrfs-snapshots-diff/btrfs-snapshots-diff.py -s -f $tmp | \
- grep -vxF "Found a valid Btrfs stream header, version 1" | \
- grep -cv "^[^;]*;snapshot: ") ||:
- if [[ $lines == 0 ]]; then
- # rotate in case we find a bug, weve got 2 old ones
- tmpleaf=($vol.tmpleaf2.*)
- if (( ${#tmpleaf[@]} )); then
- x btrfs sub del ${tmpleaf[@]}
- fi
- tmpleaf=($vol.tmpleaf1.*)
- if (( ${#tmpleaf[@]} )); then
- x mv ${tmpleaf[0]} $vol.tmpleaf2.${tmpleaf[0]#$vol.tmpleaf1.}
- fi
- echo suspected identical: $bsub $leaf
- x mv $leaf $vol.tmpleaf1.${leaf#$vol.leaf.}
- fi
+ lines=$(btrfs send --no-data -p $bsub $leaf | btrfs receive --dump | head -n 100 | wc -l || [[ $? == 141 || ${PIPESTATUS[0]} == 32 ]])
+ if [[ $lines == 0 ]]; then
+ # example output of no differences:
+ # snapshot ./qrtest uuid=c41ff6b7-0527-f34d-95ac-190eecf54ff5 transid=2239 parent_uuid=64949e1b-4a3e-3945-9a8e-cd7b7c15d7d6 parent_transid=2239
+ echo suspected identical: $bsub $leaf
+ x btrfs sub del $leaf