Tweaked replicate script to show open file handles when it can't export backup pool
[zfs-ubuntu/.git] / zfs-replicate-all
index 8d43bd92430e3c1f5c0a124a50c08185c9803fa5..6fc9bfc269014181bd655fba682c64314b1ace6c 100755 (executable)
@@ -50,11 +50,15 @@ cleanup_and_exit() {
 }
 trap cleanup_and_exit INT
 
-fatal_and_exit() {
+fatal() {
   # echo message to terminal
   echo -e 2>&1 "$1"
   # send email notification
-  echo -e "$1" | $mailx -s "zfs scrub on $hostname failed" "$mailto"
+  echo -e "$1" | $mailx -s "zfs-replicate-all on $hostname failed" "$mailto"
+}
+
+fatal_and_exit() {
+  fatal $*
   exit 1
 }
 
@@ -130,9 +134,14 @@ done
 
 # Export the local pool if told to do so
 if [[ $import_export_backup_pool == 1 ]]; then
-  zpool export $backup_pool
+  # Don't export the pool if there is a currently running zfs-scrub operation
+  ps -ef | grep "zfs-scrub" | grep -q "${backup_pool}" | grep -v grep
   if [ $? != 0 ]; then
-    fatal_and_exit "-E- unable to export the local backup pool $backup_pool on $hostname" "$mailto"
+    zpool export $backup_pool
+    if [ $? != 0 ]; then
+      lsof /$backup_pool/*
+      fatal("-E- unable to export the local backup pool $backup_pool on $hostname")
+    fi
   fi
 fi