Browse Source

Upload files to ''

Thierry Reijnhout 4 years ago
parent
commit
de7ef24184
1 changed files with 218 additions and 0 deletions
  1. 218 0
      testzfsshot9.0remote.sh

+ 218 - 0
testzfsshot9.0remote.sh

@@ -0,0 +1,218 @@
+#!/bin/bash
+clear
+
+LoclaIP="10.0.4.13"
+Rshot="Raid10_pool"
+Rserver="root@10.0.4.1"
+Ldest="testpool/test"
+logfile="/mnt/NFSUsers/thierry423/$0.log"
+loadedtape="/mnt/NFSUsers/thierry423/loadedtape.cnf"
+
+loaderdev="/dev/sg9"
+
+prepair () {
+echo "prepair / rewind tape drive's" >> $logfile
+#element 2 & 3 full Raid10_pool testzfsshot5remote
+#mtx -f $loaderdev unload 5 0 
+#mtx -f $loaderdev unload 6 1
+#mtx -f $loaderdev load 7 0 
+#mtx -f $loaderdev load 8 1
+
+mt -f /dev/st0 rewind&
+mt -f /dev/st1 rewind
+wait
+}
+
+choustape () {
+wk=$(date +%V)
+x=7;z=0;tp=1
+while [ $z -lt 1 ]
+ do
+  if [[ $wk -lt $x ]]; then 
+  break
+  else 
+   x=$[$x+8]
+   tp=$[$tp+1]
+  fi
+ done
+ echo "tape period: " $tp
+  if [[ $tp = 1 ]]; then tp=0; fi
+  if [[ $tp = 2 ]]; then tp=2; fi
+  if [[ $tp = 3 ]]; then tp=12; fi
+  if [[ $tp = 4 ]]; then tp=14; fi
+  if [[ $tp = 5 ]]; then tp=24; fi
+  if [[ $tp = 6 ]]; then tp=26; fi
+  if [[ $tp = 7 ]]; then tp=36; fi
+if [[ $1 = 1 ]]; then 
+ slotnr=$[1+$tp]
+ fi
+if [[ $1 = 2 ]]; then 
+ slotnr=$[5+$tp]
+ fi
+if [[ $1 = 3 ]]; then 
+ slotnr=$[9+$tp]
+ fi
+#slotnr=$[$slotnr + 1]
+    mtx -f $loaderdev load $[$slotnr ] 0
+    mtx -f $loaderdev load $[$slotnr + 1] 1
+   if [[ $? != 0 ]]; then
+    echo "failed to change to next 2 Tape's"
+    echo "failed to change to next 2 Tape's" >> $logfile
+    exit
+   else
+     echo "tapes $slotnr loaded"
+     echo "tapes $slotnr +0 loaded in drive 0" >> $logfile
+     echo "tapes $slotnr +1 loaded in drive 1" >> $logfile
+   fi
+return $slotnr
+}
+
+ejec () {
+mt -f /dev/st0 rewind&
+mt -f /dev/st1 rewind
+wait
+mtx -f $loaderdev unload $num_tape 0
+mtx -f $loaderdev unload $[$num_tape + 1] 1
+ echo "rewind & ejected $num_tape & $num_tape + 1 from drive 0 & 1"
+}
+
+
+writetotape () {
+  killall mbuffer
+   b="0"
+   a="0"
+ ssh $Rserver zfs snapshot -r $Rshot@tapeshot0 
+  echo "created remote snapshot & start lockal mbuffer" >> $logfile
+  #ssh $Rserver zfs send -R $Rshot@tapeshot0 | dd of=/dev/null status=progress
+  mbuffer -d 8m -m 512M -I 9090 -o /dev/nst0 -o /dev/nst1 >> $logfile & #Start mbufferserver
+ sleep 3
+  ssh $Rserver zfs send -R $Rshot@tapeshot0 | mbuffer -q -m 512M -O $LoclaIP:9090
+  echo "writen snapshot to tape's" >> $logfile
+  wait
+  sleep 4
+ b=$[$b+1]
+  while [ $a -lt 1 ]
+     do
+        SECONDS=0
+            tapeshotnr="tapeshot$b"
+            ssh $Rserver zfs snapshot -r $Rshot@$tapeshotnr
+            #ssh $Rserver zfs send -R -i $Rshot@tapeshot$[$b-1] $Rshot@$tapeshotnr | dd of=/dev/nst1 bs=1M status=progress
+            mbuffer -d 8m -m 512M -I 9190 -o /dev/nst0 -o /dev/nst1 >> $logfile  & #Start mbufferserver
+            sleep 3
+             ssh $Rserver zfs send -R -i $Rshot@tapeshot$[$b-1] $Rshot@$tapeshotnr | mbuffer -m 512M -O $LoclaIP:9190
+            wait
+            sleep 4
+            a=$[$a+1]
+            b=$[$b+1]
+        duration=$SECONDS
+        echo "$(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."
+        if [[ $(($duration / 60)) -lt 1 ]]; then
+         echo "snapshot took les then 1 minut. done " >> $logfile
+         a="1"
+        else 
+         echo "snapshot took longer then 1minut...do a next increimental snap and send to tape" >> $logfile
+        fi 
+     done
+    while [ $b -gt 0 ]
+     do 
+        b=$[$b-1]
+        ssh $Rserver zfs destroy -r $Rshot@tapeshot$b 
+        echo "destroyed remote snapshot" >> $logfile
+     done
+}
+
+Writetozpool () {
+a="1"
+b="0"
+while [ $b -lt 1 ]
+do
+zfs destroy -r testpool/test1
+zfs destroy -r testpool/test2
+sleep 3
+ dd if=/dev/nst0 bs=64K status=progress |  zfs receive -F testpool/test1
+ dd if=/dev/nst1 bs=64K status=progress |  zfs receive -F testpool/test2 
+ if [[ $? != 0 ]]; then
+  echo "No more snapshots on tape latest was $a"
+  b="1"
+ else
+  echo "snapshot $a received"
+  a=$[$a+1]
+ fi
+done 
+}
+
+if [[ $1 = 1 ]]; then
+ echo "running 7 week Backup @ $(date)" >> $logfile
+  tape="$(choustape 1)"
+    num_tape=$?
+   Rshot="Raid10_pool/Users"
+  prepair
+  writetotape
+  ejec $num_tape
+ echo "writen $Rhost to $num_tape" >>$logfile 
+  tape="$(choustape 2)"
+    num_tape=$?
+   Rshot="Raid10_pool/System"
+  prepair
+  writetotape
+   Rshot="Raid10_pool/var"
+  writetotape 
+  ejec $num_tape
+ echo "writen $Rhost to $num_tape" >>$logfile 
+  tape="$(choustape 3)"
+    num_tape=$?
+      Rserver="root@10.0.4.3" 
+      Rshot="BIG_pool/Media"
+  prepair
+  writetotape
+  ejec $num_tape
+ fi
+if [[ $1 = 2 ]]; then
+    tape="$(choustape $2)"
+    num_tape=$?
+   prepair
+   Writetozpool 
+   ejec $num_tape
+    echo "writen /Media & $Rhost to $num_tape" >>$logfile 
+ fi
+if [[ $1 = 3 ]]; then
+  prepair
+  Writetozpool
+ fi
+if [[ $1 = 4 ]]; then
+  Rserver="root@10.0.4.2" 
+  Rshot="Raid10_pool/Users"
+  echo "4 is for testing killall mbuffer & dd @start"
+  killall mbuffer
+  killall dd
+   tape="$(choustape $2)"
+   num_tape=$?
+   prepair
+   writetotape
+ S  prepair
+ #  Writetozpool
+   ejec $num_tape
+ fi
+ if [[ $1 = 5 ]]; then
+  echo "Load current Backuptapes"
+  killall mbuffer
+  killall dd
+   tape="$(choustape $2)"
+   num_tape=$?
+   prepair
+read -p "Press any key to unload backuptapes tapes... " -n1 -s
+   ejec $num_tape
+ fi 
+if [[ $1 = 9 ]]; then 
+ echo "load non backuptapes 40 39"
+ mtx -f $loaderdev load 39 0 
+ mtx -f $loaderdev load 40 1
+ read -p "Press any key to unload non backuptapes tapes... " -n1 -s
+ mtx -f $loaderdev unload 39 0 
+ mtx -f $loaderdev unload 40 1
+fi
+ 
+killall mbuffer 
+wait
+
+