fi
}
+# Replicate every zfs filesystem specified in the config file
+echo "$date ZFS replicate started" >> $logfile
+echo "$date ZFS replicate started" | tee -a $mylogfile
+
+# Loop over each backup pool
+backup_pools=$backup_pool
+for backup_pool in $backup_pools; do
+
# Import the local backup pool if needed and the option is given to do so, else error out
zpool list -H "$backup_pool" >/dev/null 2>&1
if [ $? != 0 ]; then
current_backup_marker=@current-backup-${backup_pool_guid}
previous_backup_marker=@previous-backup-${backup_pool_guid}
-# Auto snapshot every zfs filesystem on the system specified below
-echo "$date ZFS replicate started" >> $logfile
-echo "$date ZFS replicate started" | tee -a $mylogfile
-
# Sort the filesystems to replicate by the oldest backup first
tmpfile=`tempfile`
for filesystem in $filesystems_to_replicate; do
- age=`snapshot_age $filesystem`
- echo $filesystem $age >> $tmpfile
+ if [[ $filesystem =~ ':' ]]; then
+ dst_pool=${filesystem%%:*}
+ filesystem=${filesystem#*:} # remove src_pool from string
+ else
+ dst_pool=$backup_pool
+ fi
+ # Only backup filesystems that are specified to go this backup_pool
+ if [[ $backup_pool == $dst_pool ]]; then
+ age=`snapshot_age $filesystem`
+ echo $filesystem $age >> $tmpfile
+ fi
done
sorted_filesystems=`cat $tmpfile | sort -n -k 2 | awk '{ print $1 }'`
rm -f $tmpfile
# Replicate the sorted filesystems
for filesystem in $sorted_filesystems; do
echo "-> Replicating $remote:$filesystem to ${backup_pool}/${filesystem}" | tee -a $mylogfile
- replicate $remote $filesystem
+ replicate $remote $filesystem $backup_pool
done
# Export the local pool if told to do so
zpool export $backup_pool
if [ $? != 0 ]; then
lsof /$backup_pool/*
- fatal("-E- unable to export the local backup pool $backup_pool on $hostname")
+ fatal "-E- unable to export the local backup pool $backup_pool on $hostname" "$mailto"
fi
fi
fi
+done
+
# All done
echo `date` ZFS replicate complete >> $logfile
echo `date` ZFS replicate complete | tee -a $mylogfile