Solarisではjotとかseqとかは無い(あえて入れなければ)ので、jotの部分が上手く動かない。
そこで、ちょっと改良。
#!/usr/bin/bash
PATH=/sbin:$PATH
mountpoint=$1
snapshot_name=$2
level=$3
option=$4
zfs_opt=
if [ "$option" = "recursive" ]; then
zfs_opt=-r
fi
## destroy outdated snapshot
zfs destroy $zfs_opt "$mountpoint@`expr $level - 1`$snapshot_name"
## rotate snapshot
i=`expr $level - 2`
while test $i -ge 0
do
i_plus1=`expr $i + 1`
zfs rename $zfs_opt "$mountpoint@$i$snapshot_name" "$mountpoint@$i_plus1
$snapshot_name"
i=`expr $i - 1`
done
## take snapshot
zfs snapshot $zfs_opt "$mountpoint@0$snapshot_name"
jotコマンドの結果を使ってforでループさせていた部分を、whileを使ったループに置き換えてみた。
他の使い方はオリジナル通り。
コメント