#!/bin/bash #MENU Linux Image Disk #pres requis: #root if [ "$EUID" -ne 0 ] then echo "Please run as root" exit fi #echo "/home/xavier/Téléchargements/PI/" > directoryhome HOME=$(cat directoryhome) #echo $HOME if [ "$HOME" == "" ]; then echo "/home/xavier/Téléchargements/PI/" > directoryhome HOME=$(cat directoryhome) fi #echo $HOME while : ; do choix=$(whiptail --title "<-- Linux Image Disk V 1.0 (C) GNU GPL In4Matik-->" --menu " >> Faite votre choix: " 23 69 16 \ 1 " Sauvegarde du media vers fichier" \ 2 " Restauration du fichier vers media" \ 22 " Configuration repertoire " \ 23 " Fin " 3>&1 1>&2 2>&3) exitstatus=$? #on recupere ce choix #exitstatus=$? if [ $exitstatus = 0 ]; then echo "Vous avez choisi l option:" $choix else echo "Votre choix Fin."; break; fi # case : action en fonction du choix case $choix in 1) clear #Detection des media disponible i=0 AllPartsArr=() _media=`ls -1 /sys/block` for i in $_media do AllPartsArr+=($i " ") done while true do media=$(whiptail --title "Choix du media" --menu " >> Selectionner le media (SOURCE): " 33 69 26 "${AllPartsArr[@]}" 3>&1 1>&2 2>&3) if [ $? != 0 ]; then break; elif [ $media != "" ]; then break; fi done #echo $media media="/dev/$media" #Choix du nom de fichier destination while true do filename=$(whiptail --title "Choix du fichier" --inputbox " >> Saissir le nom du fichier (DESTINATION): " 8 39 backup.img 3>&1 1>&2 2>&3) if [ $? != 0 ]; then break; elif [ $filename != "" ]; then break; fi done filename="$HOME$filename" #echo $filename # Exec cmd dd $(dd status=progress if=$media of=$filename ) | whiptail --title "Sauvegarde du media" --msgbox "en cours de transfert du media $media vers le fichier $filename." 8 78 #show information whiptail --title "Sauvegarde du media." --msgbox "Sauvegarde terminee: du media $media vers le fichier $filename" 8 78 exit 0 ;; 2) clear #Choix du nom de fichier i=0 AllfileArr=() _filename=`cd $HOME ; ls *.img` for i in $_filename do AllfileArr+=($i " ") done while true do filename=$(whiptail --title "Choix du fichier" --menu " >> Selectionner le fichier (SOURCE) : " 33 69 26 "${AllfileArr[@]}" 3>&1 1>&2 2>&3) if [ $? != 0 ]; then break; elif [ $filename != "" ]; then break; fi done #echo $filename #Detection des media disponible i=0 AllPartsArr=() _media=`ls -1 /sys/block` for i in $_media do AllPartsArr+=($i " ") done while true do media=$(whiptail --title "Choix du media" --menu " >> Selectionner le media (DESTINATION): " 33 69 26 "${AllPartsArr[@]}" 3>&1 1>&2 2>&3) if [ $? != 0 ]; then break; elif [ $media != "" ]; then break; fi done #echo $media media="/dev/$media" # Exec cmd dd $(dd status=progress if=$filename of=$media bs=4M) | whiptail --title "Restauration du Fichier" --msgbox "en cours de transfert du fichier $filename vers le media $media." 8 78 #show information whiptail --title "Restauration du fichier." --msgbox "Restauration terminee: du fichier $filename sur le media $media" 8 78 exit 0 ;; 22) #Choix du chemin HOME while true do filehome=$(whiptail --title "Choix du chemin" --inputbox " >> Saissir le chemin de sauvegarde: " 8 39 $HOME 3>&1 1>&2 2>&3) if [ $filehome != "" ]; then break; fi done if [ "$filehome" != "" ]; then echo $filehome > directoryhome HOME=$filehome fi ;; 23) exit 0;; esac done exit 0