# Randomly remove some files for every 5 loop
if [ $(( $i % 5 )) -eq 0 ]; then
- victim=$(ls "$SCRATCH_MNT/src" | sort -R | head -n1)
- rm "$SCRATCH_MNT/src/$victim"
+ victim=$(_random_file "$SCRATCH_MNT/src")
+ rm "$victim"
fi
i=$((i + 1))
done
trap "wait; exit" SIGTERM
while true; do
sleep $((sleep_time * 2))
- victim=$(ls "$SCRATCH_MNT/snapshots" | sort -R | head -n1)
+ victim=$(_random_file "$SCRATCH_MNT/snapshots")
if [ -z "$victim" ]; then
# No snapshots available, sleep and retry later.
continue
fi
- $BTRFS_UTIL_PROG subvolume delete \
- "$SCRATCH_MNT/snapshots/$victim" > /dev/null
+ $BTRFS_UTIL_PROG subvolume delete "$victim" > /dev/null
done
}
mkdir -p $SCRATCH_MNT/snapshots
mkdir -p $SCRATCH_MNT/src/padding
-random_file()
-{
- local basedir=$1
- echo "$basedir/$(ls $basedir | sort -R | tail -1)"
-}
-
snapshot_workload()
{
trap "wait; exit" SIGTERM
$SCRATCH_MNT/src $SCRATCH_MNT/snapshots/$i \
> /dev/null
# Do something small to make snapshots different
- rm -f "$(random_file $SCRATCH_MNT/src/padding)"
- rm -f "$(random_file $SCRATCH_MNT/src/padding)"
- touch "$(random_file $SCRATCH_MNT/src/padding)"
+ rm -f "$(_random_file $SCRATCH_MNT/src/padding)"
+ rm -f "$(_random_file $SCRATCH_MNT/src/padding)"
+ touch "$(_random_file $SCRATCH_MNT/src/padding)"
touch "$SCRATCH_MNT/src/padding/random_$RANDOM"
i=$(($i + 1))
while true; do
sleep 2
$BTRFS_UTIL_PROG subvolume delete \
- "$(random_file $SCRATCH_MNT/snapshots)" \
+ "$(_random_file $SCRATCH_MNT/snapshots)" \
> /dev/null 2>&1
done
}