]> git.sur5r.net Git - bacula/rescue/blobdiff - rescue/linux/usb/src/scripts/x_or_shell
Add new usb rescue key code
[bacula/rescue] / rescue / linux / usb / src / scripts / x_or_shell
diff --git a/rescue/linux/usb/src/scripts/x_or_shell b/rescue/linux/usb/src/scripts/x_or_shell
new file mode 100755 (executable)
index 0000000..435fe30
--- /dev/null
@@ -0,0 +1,221 @@
+#!/bin/sh
+
+set -x
+z=0
+bar="/"
+one="1"
+two="2"
+three="3"
+cwd=`pwd`
+host=`hostname`
+goodanswer=1000
+doit=0
+
+if [ ! `whoami` = "root" ] ; then
+  echo ""
+  echo "You need to be root to run this script ..."
+  echo ""
+  exit 1
+fi
+
+
+
+if [ -f ./nozen ]; then 
+   rm ./nozen
+fi
+
+if [ -f ./differenthostname ]; then 
+   rm ./differenthostname
+fi
+
+Xdialog --title " Welcome" --msgbox "Welcome to the bacula usb rescue" 10 30|| { echo "";echo "";echo "";echo "";echo "you don't seem to have an X server running, defaulting to console mode" ; echo "nozen" >> nozen ; }
+
+echo ""
+echo ""
+echo ""
+
+if [ -f ./nozen ]; then 
+   DIALOG=dialog
+else
+   DIALOG=Xdialog
+fi
+
+if [ -f nozen ]; then
+   $DIALOG --title " Welcome" --msgbox "Welcome to the bacula usb rescue" 10 30
+fi
+   $DIALOG --radiolist "Do you want to:" 10 40 3 \
+        1 "Collect info for a client" off \
+        2 "Restore a client" off 2>ans
+        if [ $? = 1 ];then
+        exit 1
+        fi
+wannado=`cat ans|cut -d'"' -f2 |cut -d'"' -f1`
+     
+#usbdev=`mount -l |grep xubuntu9 |cut -d" " -f3`
+root=`df |grep rootfs|awk '{print $6}'`
+
+if [ x{$wannado} = x{$two} ] ; then
+   if [ ! x{$root} = "x{/}" ]; then
+        $DIALOG --msgbox "Please boot on  the usb key to restore a client" 30 80
+        exit 1
+   else
+        . ./restore/restoredebut
+        exit 0
+  fi
+fi
+
+if [ x{$wannado} = x{$one} ] ; then
+   if [ x{$root} = x{$bar} ]; then
+       $DIALOG --msgbox "Please boot on your system (not on the usb key) \n       to gather client info" 20 60
+       exit 0
+   fi
+if [ -f unmounted ];then
+rm unmounted
+fi
+
+mount -l |awk '{print $1}'|grep /dev/ >mounted
+blkid |awk '{print $1}'|grep -v /dev/md |while read line;do
+line=${line%?}
+grep $line mounted >/dev/null 2>&1
+
+if [ ! $? = 0 ];then
+echo $line >> unmounted
+fi
+done
+echo "Mounted disks are:                                                             Unmounted disks are:">mntinfo 
+       
+unmounted=`cat unmounted|wc -l`
+
+mounted=`cat mounted|wc -l`
+if [ $mounted -gt $unmounted ];then
+lines=$mounted
+else
+lines=$unmounted
+fi
+
+if [ $mounted -eq $unmounted ];then
+lines=$mounted
+fi
+
+
+for i in $(seq 1 $lines) ;do
+a=`cat  mounted| awk "NR==$i"`
+b=`cat  unmounted| awk "NR==$i"`
+long1=`echo $a|wc -c`
+long2=`echo $b|wc -c`
+if [ $long2 -lt 11 ];then
+if [ $long1 -lt 11 ];then
+echo "$a                                                                              $b">>mntinfo
+else
+echo "$a                                                      $b">>mntinfo
+fi
+else
+echo "$a                                                      $b">>mntinfo
+fi
+done
+mounted=`cat mntinfo`
+
+rm unmounted
+#rm mntinfo
+rm mounted
+
+
+        $DIALOG --title " Warning " --yesno "Only mounted disks will get picked up, \n Please mount all the disks you want to be able \n to restore before running this script \n \n \n $mounted \n \n  \n Note that raid devices will show up as unmounted \n \n Do you want to continue ?"  600 600
+        if [ $? = 1 ];then
+        exit 1
+        fi
+
+        while [ $goodanswer -gt 600 ]; do
+
+         if [ -f ../clients/$host/diskinfo/df.bsi ] ; then
+
+        
+        $DIALOG --radiolist "Please note that the informations are stored by hostname ,\n we seem to already have gattered information for that hostname. Do you want to :" 20 80 3 \
+        1 "continue , moving previous data to .bak (erasing old .bak if any) ?" off \
+        2 "choose a name for this backup (you will have to remember it for restoring) ? " off 2>ans 
+        if [ $? = 1 ];then
+        exit 1
+        fi
+        changename=`cat ans|cut -d'"' -f2 |cut -d'"' -f1`
+        
+        else
+
+        $DIALOG --radiolist "Please note that the informations are stored by hostname ,\n The hostname for this machine is $host \n  Do you want to :" 20 80 3 \
+        1 "Use the hostname as a reference for this client ?" off \
+        2 "choose a name for this backup (you will have to remember it for restoring) ? " off 2>ans 
+        if [ $? = 1 ];then
+        exit 1
+        fi
+        changename=`cat ans|cut -d'"' -f2 |cut -d'"' -f1`
+        fi
+        
+
+                if [ $changename = $one ] ;then
+
+                newhostname=$host
+                goodanswer=500
+                doit=1
+                fi
+
+
+
+
+                        if [ $changename = $two ] ;then
+
+
+        
+
+                        $DIALOG --inputbox "Please enter a name under which you want to save this client" 30 80 2>ans
+                                if [ $? = 1 ];then
+                                exit 1
+                                fi
+
+                        newhostname=`cat ans|cut -d'"' -f2 |cut -d'"' -f1`
+
+                                if [ -f ./differenthostname ]; then 
+                                rm ./differenthostname
+                                fi
+        
+                        echo $newhostname >> differenthostname
+                        goodanswer=500
+                         fi
+
+                                if [ $changename -ne $two ] ; then
+                                goodanswer=1000
+                                fi
+
+
+                                        if [ -f ../clients/$newhostname/diskinfo/df.bsi ] ; then
+                                                if [ ${doit} -gt 0 ] ; then
+                                                goodanswer=500
+
+                                                else
+
+                                                goodanswer=1000
+
+                                                fi
+
+
+                                                        if [ x{$wannado} = x{$two} ] ; then
+
+                                                                if [ ! x{$usbdev} = x{$bar} ]; then
+
+        
+
+                                                                $DIALOG --msgbox  "Please boot on  the usb key to restore a client" 30 30
+
+                                                                exit 0
+                                                                fi
+
+                                                        fi
+                                        else 
+                                          goodanswer=500
+                                        fi
+        done
+
+  fi
+
+
+./getdiskinfo
+