X-Git-Url: http://git.pippins.net/embedvideo/.git/?a=blobdiff_plain;f=zfs-restore-all;h=dbe09a1d57c9a761afb166d6659ec901ac90cb68;hb=d343c96fd4190924d3407cc9de1a12f66491670c;hp=76c7bf8a0e1cf850a940bc07bad73212f0b1d5d0;hpb=b12a5ad3bc477a5369871300b89f5a658df11554;p=zfs-ubuntu%2F.git diff --git a/zfs-restore-all b/zfs-restore-all index 76c7bf8..dbe09a1 100755 --- a/zfs-restore-all +++ b/zfs-restore-all @@ -10,7 +10,7 @@ config="${0%/*}/zfs-scripts.conf" [ -e "${config}" ] && . ${config} # Setup some default values -logfile="$logdir/zfs-replicate-all.log" +logfile="$logdir/zfs-restore-all.log" # Setup our output if [[ -z "$SCRIPT_UNDER_TEST" ]]; then @@ -22,7 +22,6 @@ cleanup_and_exit() { } trap cleanup_and_exit INT - # See if the user has a specific pool to restore in mind restore_pool=$1 @@ -31,16 +30,26 @@ echo `date` ZFS restore started # For each filesystem we are supposed to restore, do it for filesystem in $filesystems_to_replicate; do + if [[ $filesystem =~ ':' ]]; then + src_pool=${filesystem%%:*} + filesystem=${filesystem#*:} # remove src_pool from string + else + src_pool=${backup_pool%% *} # use the first backup pool if none specified + fi dst_pool=${filesystem%%/*} dst_fs=${filesystem#*/} # Check to make sure the dst filesystem does not exist - ssh $remote "$zfs list ${dst_pool}/${dst_fs}" > /dev/null 2>&1 + if [[ $remote = "localhost" ]]; then + $ssh $remote $zfs list ${dst_pool}/${dst_fs} > /dev/null 2>&1 + else + $zfs list ${dst_pool}/${dst_fs} > /dev/null 2>&1 + fi if [ $? != 0 ]; then echo "$filesystem" | grep -q "$restore_pool" if [ $? == 0 ]; then # This filesystem matches our restore pool pattern echo `date` Restoring $filesystem to $remote - zfs-restore $local_pool $filesystem $dst_pool $dst_fs $remote + zfs-restore $src_pool $filesystem $dst_pool $dst_fs $remote fi else echo "-I- Filesystem already exists on destination. Skipping: $filesystem"