}
trap cleanup_and_exit INT
-fatal() {
+fatal_and_exit() {
# echo message to terminal
echo -e 2>&1 "$1"
# send email notification
- echo -e "$1" | $mailx -s "zfs-replicate-all on $hostname failed" "$mailto"
-}
-
-fatal_and_exit() {
- fatal $*
- exit 1
+ echo -e "$1" | $mailx -s "zfs-replicate-all on $hostname failed" "$2"
+ # exit with bad return code unless 3rd argument was defined that says not to
+ if [[ -z "$3" ]]; then
+ exit 1
+ fi
}
# This function executes the replicate command and checks the stoptime
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
+zpool list -H $backup_pool >/dev/null 2>&1
if [ $? != 0 ]; then
if [[ $import_export_backup_pool == 1 ]]; then
zpool import $backup_pool
if [ $? != 0 ]; then
- fatal_and_exit "-E- unable to import the backup pool $backup_pool on $hostname" "$mailto"
+ fatal_and_exit "-E- unable to import the backup pool '$backup_pool' on $hostname" "$mailto"
fi
else
fatal_and_exit "-E- The local backup pool on $hostname, '$backup_pool' doesn't seem to exist." "$mailto"
if [ $? != 0 ]; then
zpool export $backup_pool
if [ $? != 0 ]; then
- lsof /$backup_pool/*
- fatal "-E- unable to export the local backup pool $backup_pool on $hostname" "$mailto"
+ sleep 300
+ zpool export $backup_pool
+ if [ $? != 0 ]; then
+ lsof /$backup_pool/*
+ fatal_and_exit "-E- unable to export the local backup pool $backup_pool on $hostname" "$mailto" 0
+ fi
fi
fi
fi