Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/06/2014, à 17:05

spectre3brad

Multiple choix avec dialog depuis fichier

Bonjour à tous,

je cherche comment recuperer différents éléments ici des dates sous forme AAAA-MM-JJ contenues ligne par ligne dans un fichier. Sachant que ce le nombre de lignes et donc de choix dans ce documents sont aléatoires.

Comment insérer ceci avec la notion d’aléatoire sous un format "dialog" dans mon terminal pour choix semi-graphique?

Exemple:

Un jour mon fichier contient ceci:

2014-06-19
2014-06-01
2014-05-25

Ce qui me donnera une fenêtre dialog dans mon terminal avec ses trois choix.

Mais un autre jour je peut avoir seulement deux éléments dans mon fichier ou alors dix donc comment gérer ceci au niveau de dialog?

Merci.

Dernière modification par spectre3brad (Le 19/06/2014, à 17:06)

Hors ligne

#2 Le 19/06/2014, à 17:52

pingouinux

Re : Multiple choix avec dialog depuis fichier

Bonjour,
Essaye ceci :

choix=$(zenity --list --checklist --column "" --column "Date" $(sed 's/^/FALSE /' ton_fichier))
echo "$choix"

Ajouté : Et si tu veux n'avoir qu'un seul choix

choix=$(zenity --list --radiolist --column "" --column "Date" $(sed 's/^/FALSE /' ton_fichier))

Dernière modification par pingouinux (Le 19/06/2014, à 17:56)

Hors ligne

#3 Le 20/06/2014, à 09:20

spectre3brad

Re : Multiple choix avec dialog depuis fichier

Bonjour Pingouinux,

merci pour ta réponse.

Zenity à l'air très intéressant seulement désolé j'ai pas précisé je suis à la fois sur Ubuntu 14.04 LTS mais aussi Debian 7. Mais il semble que Zenity ne soit pas installé de base sur Debian 7 et ou je suis le propriétaire serveur n'aime pas trop les nouvelles installation donc je dois faire avec ce que j'ai sad

Du coup je suis obligé de rester sur du dialog étant de base sur les deux systèmes.

Hors ligne

#4 Le 20/06/2014, à 11:08

pingouinux

Re : Multiple choix avec dialog depuis fichier

N'ayant jamais utilisé dialog, après quelques tâtonnements, je te propose ceci, mais il y a certainement plus simple.

dialog --radiolist text 0 0 0 $(sed 's/$/ \r off/' ton_fichier) 2>/tmp/dialog_err; choix=$(cat /tmp/dialog_err); echo $choix

Hors ligne

#5 Le 20/06/2014, à 15:05

spectre3brad

Re : Multiple choix avec dialog depuis fichier

Non malheureusement cela ne semble pas fonctionner. J'ai fais plusieurs tests et recherches mais je sèche quelque peu pour le moment.

Hors ligne

#6 Le 21/06/2014, à 00:28

spectre3brad

Re : Multiple choix avec dialog depuis fichier

Trouvé!

#! /bin/bash
DIALOG=${DIALOG=dialog}

# build dynamic menu options
cat /home/user/test/test.txt >/tmp/dirs.$$
i=1
while read line
do
  echo $i $line >>/tmp/options.$$
  i=`expr $i + 1`
done </tmp/dirs.$$
OPTIONS=`cat /tmp/options.$$`

# clean up
rm -f /tmp/dirs.$$
rm -f /tmp/options.$$

# present menu options
dialog --title "Title goes here" --menu "Please choose an option:" 15 40 20 ${OPTIONS} 2>/tmp/ans.$$

cat < /tmp/ans.$$
echo "\n\n"

Bon maintenant il me faut trouver comment faire une barre de progression pour rsync ...

Hors ligne

#7 Le 21/06/2014, à 05:29

pingouinux

Re : Multiple choix avec dialog depuis fichier

Pour info, tu peux remplacer

i=1
while read line
do
  echo $i $line >>/tmp/options.$$
  i=`expr $i + 1`
done </tmp/dirs.$$
OPTIONS=`cat /tmp/options.$$`

par

OPTIONS=$(nl /tmp/dirs.$$)

Hors ligne

#8 Le 23/06/2014, à 10:01

spectre3brad

Re : Multiple choix avec dialog depuis fichier

OK merci Pingouinux.

Bon j'ai un nouveau soucis qui j'en suis sur doit être tout simple en final mais je ne trouve pas sad

Voila une ligne de mon code qui ne va pas:

choix_date=`sed -n `$choix_date_menup` $list_save_dates_tri`

Cette ligne va créer la variable $choix_date à partir du contenu lu dans une ligne donné par l'utilisateur $choix_date_menu lue dans le fichier $list_save_dates_tri .

Seulement si je met par exemple:

choix_date=`sed -n `3p` $list_save_dates_tri`

Alors il va bien me donner le contenu de la ligne numéro 3 comme je le désire.

Seulement le numéro de ligne est ici une variable et forcement si je met $choix_date_menup il va le prendre pour une autre varible.

Donc comment faire?

Hors ligne

#9 Le 23/06/2014, à 11:03

pingouinux

Re : Multiple choix avec dialog depuis fichier

J'ai eu du mal à comprendre tes explications, mais je pense que tu veux ceci :

choix_date=$(sed -n "${choix_date_menu}p" "$list_save_dates_tri")

Hors ligne

#10 Le 23/06/2014, à 11:12

spectre3brad

Re : Multiple choix avec dialog depuis fichier

Il ne me donne aucune valeur.

$choix_date_menu = 3
Mais
$choix_date =

Je devrais par exemple avoir
$choix_date = 2014-06-23

Étrange.

Hors ligne

#11 Le 23/06/2014, à 11:45

pingouinux

Re : Multiple choix avec dialog depuis fichier

Fais un copier-coller des commandes que tu as lancées, et de leur résultat (entre balises-code).

Hors ligne

#12 Le 23/06/2014, à 14:35

spectre3brad

Re : Multiple choix avec dialog depuis fichier

Voici le script dans son ensemble en cours de réalisation:

###======================================================================================
### Fichier     : restore-kvm.sh
### Auteur      : spectre3brad
### Licence     : GNU GPL v3 - http://www.gnu.org/licenses/gpl.html
### Description : Ce script permet de restaurer les VMs suite à sauvegarde par le script de sauvegarde fournit à l'entreprise XXX.
###======================================================================================
###Mise à jour (Changelog):
#18-06-2014 à 18H00: 400 Lignes ecrites. Ecriture du script en cours par spectre3brad.
#23-06-2014 à 12H30: 490 Lignes ecrites. AJout menu graphique dynamique pour choix dates du mode de restauration par dates. A present tout les fichiers temporaires sont dans le meme dossier utilisé par le script dans /tmp/dossier_utilise_par_le_script puis celui-ci est effacé à la fin.
###======================================================================================
###Dossiers utilisés dans le script:
#/media/Semaine (Media externe contenant les sauvegardes)
#/VT/backup/racine_os/etc/kvm (Fichiers configurations des VMs KVM sur le media externe)
#/VT/backup/racine_os/VT/disk (Disques virtuels sur le media externe)
#/VT/backup/racine_os/VT/ISO (ISO CD/DVD sur le media externe)
#/etc/kvm (Fichiers configurations des VMs KVM sur le serveur)
#/VT/disk (Disques virtuels des VMs KVM sur le serveur)
#/VT/ISO (ISO des VMs KVM sur le serveur)
#/tmp/KVM-Restor (Dossier contenant les fichiers temporaires generes par ce script)
###======================================================================================
###Notes:
#
###======================================================================================

#!/bin/sh

#set -n

###Variables:
#Dates:
date=`date +%F`
date_full=`date`

#Temps morts:
#Temps d'attente entre la derniere commande de lecture ou ecriture sur media externe avec demontage:
sleep_demontage=5
#Temps d'attente entre deux commande mail: (Permet de laisser du temps aux commandes pour passer correctement via Telnet).
sleep_mail=2

#Sources:
label_media=Semaine
source_full=/media/Semaine
source_kvm_configurations=/VT/backup/racine_os/etc/kvm
source_kvm_images_disques=/VT/backup/racine_os/VT/disk
source_kvm_iso=/VT/backup/racine_os/VT/ISO

#Destinations:
restauration=/VT/restauration
destination_kvm_configurations=/etc/kvm
destination_kvm_images_disques=/VT/disk
destination_kvm_iso=/VT/ISO
destination_kvm_full=/VT/backup

#Log (Avec rotation de 3 jours via logcrotate):
log=/var/log/Sauvegarde/KVM/KVM-Restor

#Fichiers temporaires:
destination_temp=/tmp/KVM-Restor
list_save_dates=/tmp/KVM-Restor/list-dates
list_save_dates_tri=/tmp/KVM-Restor/list-dates-tri

#Courriels parametres:
#Email avec lequel expedier les informations de reussite ou echec du script.
mail_expediteur=No-Reply-Script-Restauration-VMs@domain.tld
#Email destinataire des informations de reussite ou echec du script.
#mail_destinataire=informatique@domain.tld
#Email de test:
mail_destinataire=spectre3brad@domain.tld

#Compter nombre de lignes dans le fichier "list_save_dates_tri".
nb_lignes_list_save_dates_tri=`wc -l $list_save_dates_tri | cut -d ' ' -f1`



###Creation du log avec indication de debut de script.
echo "Debut de script de sauvegarde des machines virtuelles le $date_full \n\n" >> $log

###Message graphique pour verification de l'inseration du media externe.
dialog --backtitle "Programme de restauration des VMs KVM" --title "Montage du media externe - 0%" \
--msgbox "\n Assurez-vous d'avoir bien insere le media externe contenant la sauvegarde avant de continuer. \n\n Appuyez sur "OK" lorsque celui-ci est bien insere." 15 50

###Creation du point de montage.
echo "Creation du point de montage $source_full.\n" >> $log
mkdir $source_full/

###Montage du disque e-SATA de sauvegarde.
echo "Montage du disque e-SATA de sauvegarde.\n" >> $log
if [ !  -d $source_full/lost+found ]; then
	#Montage par label
	mount -L $label_media $source_full/
fi
echo "\n\n" >> $log

###Enregistrement du uuid du support de sauvegarde monté.
echo "Informations sur le support de sauvegarde monté:" >> $log
blkid | grep "KVM-Backup" >> $log
echo "\n\n" >> $log


###Copie de la sauvegarde depuis le media externe vers le dossier /tmp du systeme.
#rm -rf /tmp/restor-kvm/
#cp -r $source_full $destination_temp >> $log

###Creation du dossier temporaire
mkdir $destination_temp

###Fonction du type de restauration souhaite.
while true;
	do
		#Choix proposes.
		#echo -n "Choisir un mode de restauration: \n\n"
		#echo "1 - Par date \n"
		#echo "2 - Par dossier \n"
		#echo "3 - Complet \n"
		#echo "4 - Quitter \n\n"

		#echo "Choisir le mode restauration souhaite (1, 2 ou 3): \n"
		#read choix

		DIALOG=${DIALOG=dialog}
		fichtemp=`tempfile 2>/dev/null` || fichtemp=$destination_temp/dialog-choix-type-restor$$
		trap "rm -f $fichtemp" 0 1 2 5 15
		$DIALOG --clear --backtitle "Programme de restauration des VMs KVM" --title "Restauration des VMs KVM - 5%" \
			--menu "Choisissez un mode de restauration:" 20 51 4 \
			 "Date" "Restaurer toutes les VMs selon une date." \
			 "Personnalise" "Restaurer une ou plusieurs VM(s) ou ISO selon votre choix." \
 			 "Total" "Restauration totale des VMs, ISO ainsi que KVM meme. Utilisation pour nouveau serveur." 2> $fichtemp
		valret=$?
		choix=`cat $fichtemp`

case $valret in
 0)	echo "Vous avez choisi la restauration de type'$choix'" >> $log;;
 1) 	echo "Appuyez sur Annuler." >> $log;;
255) 	echo "Appuyez sur Echap." >> $log;;
esac

		#Interpretation du choix.	
		case $choix in
			"Date") echo "Restauration par date." >> $log; break;;
			"Personnalise") echo "Restauration par dossier." >> $log; break;;
			"Total") echo "Restauration complete." >> $log; break;;
			#"4") exit;;
			#"*") echo "Aucun choix valide selectionné." >> $log;;
		esac

done

echo "Lancement du choix $choix"



if [ $choix = Date ];

	then

		#echo "Lancement du de la retauration par date"

		#echo "Liste des dates disponibles pour la restauration sur le media externe actuellement monté:"

		ls -dr $source_full/2***-**-** > $list_save_dates
		sort -d -f -b $list_save_dates > $list_save_dates_tri

		cat < $list_save_dates_tri

		#Construction du menu dynamique avec options.
		cat $list_save_dates_tri >$destination_temp/dirs.$$
		i=1
		while read line
			do
  				echo $i $line >>$destination_temp/options.$$
 				i=`expr $i + 1`
			done <$destination_temp/dirs.$$
		OPTIONS=`cat $destination_temp/options.$$`

		#Nettoyage
		rm -f $destination_temp/dirs.$$
		rm -f $destination_temp/options.$$

		#Menu à option construit
		dialog --backtitle "Programme de restauration des VMs KVM" --title "Choix de date - 10%" --menu "Choisissez une date de restauration:" 15 40 20 ${OPTIONS} 2>$destination_temp/ans.$$

		choix_date_menu=`cat < $destination_temp/ans.$$`

		echo "choix_date_menu = $choix_date_menu"


		#choix_date=`sed -n `$choix_date_menup` $list_save_dates_tri`
		choix_date=$(sed -n "${choix_date_menu}p" "$list_save_dates_tri")

		echo "choix_date = $choix_date"

		###Confirmation graphique du choix de date.
		dialog --backtitle "Programme de restauration des VMs KVM"  --title "Confirmation date choisie - 15%" \
--msgbox "\n Vous avez choisie une retauration à la date du $choix_date." 15 50
		
		#echo "Selectionner une date de la liste afin de restaurer l'ensemble des machines virtuelles /n"
		#echo "Entrer sous forme AAAA-MM-JJ: \n"

		#read choix_date

		#cat $list_save_dates_tri | grep $choix_date

		#while [ $? = 1 ]

			#do
				#echo "AAAA-MM-JJ incorrect! Veuillez entrer un nouveau choix: \n"
				#read choix_date
				#cat $list_save_dates_tri | grep $choix_date
				#echo $?
		#done

		echo "Vous avez choisi de restaurer l'ensemble des machines virtuelles depuis la sauvegarde du $choix_date. \n"

		#while true;
			#do
				#Choix proposes.
				#echo -n "Voulez-vous restaurer les ISO (CD/DVD d'installation) en meme temps? \n\n"
				#echo "Y - Restauration des ISO accepte. \n"
				#echo "N - Restauration ISO refuse. \n"
		
				#echo "Entrer Y ou N: \n"
				#read Restauration_ISO_choix

				#Interpretation du choix.	
				#case $Restauration_ISO_choix in
					#Y* | y*) echo "Restauration des ISO accepte."; break;;
					#N* | n*) echo "Restauration ISO refuse."; break;;
					#"*") echo "Aucun choix valide selectionné.";;
				#esac

				$DIALOG --backtitle "Programme de restauration des VMs KVM" --title "ISO - Restauration - 20%" --clear \
				--yesno "Voulez-vous restaurer aussi les ISO (CD/DVD) ?" 10 30

				case $? in
					0)	Restauration_ISO_choix=Y;;
					1)	Restauration_ISO_choix=N;;
					255)	echo "Appuyé sur Echap. ";;
				esac

				if [ $Restauration_ISO_choix = Y ];
	
					then echo "Restauration des ISO (CD/DVD) selectione."
	

					else echo "Restauration des ISO (CD/DVD) non selectione."

				fi

		#done



		###Mettre ici l'arret des VMs
		#kvmctl stop *

		###Suppression des anciens fichiers de configurations des machines virtuelles KVM.
		echo "Suppression des anciens fichiers de configurations en cours..."
		rm -rf $destination_kvm_configurations
		echo "Suppression des anciens fichiers de configurations termine."

		###Restauration des fichiers de configurations des machines virtuelles KVM.
		echo "Restauration des fichiers de configurations en cours..."
		rsync -ca --progress $source_full/$choix_date/racine_os/etc/kvm/ --log-file=$log $destination_kvm_configurations
		echo "Restauration des fichiers de configurations terminés."

		###Verification que la source et la destination soient bien identiques.
		if diff $source_full/$choix_date/racine_os/etc/kvm/ $destination_kvm_configurations > /dev/null 2>&1
			then
				diff_conf=0
			else
				diff_conf=1
		fi

		###Suppression des anciens disques virtuels des machines virtuelles KVM.
		echo "Suppression des anciens disques virtuels en cours..."
		rm -rf $destination_kvm_images_disques
		echo "Suppression des anciens disques virtuels termine."

		###Restauration des disques virtuels des machines virtuelles KVM.
		echo "Restauration des disques virtuels en cours..."
		rsync -ca --progress $source_full/$choix_date/racine_os/VT/disk/ --log-file=$log $destination_kvm_images_disques
		echo "Restauration des disques virtuels terminés."

		###Verification que la source et la destination soient bien identiques.
		if diff $source_full/$choix_date/racine_os/VT/disk/ $destination_kvm_images_disques > /dev/null 2>&1
			then
				diff_disk=0
			else
				diff_disk=1
		fi




###Dev. Sortie variable $choix_date
echo "Varible choix_date = $choix_date"
###dev. $Restauration_ISO_choix
echo "Restauration_ISO_choix = $Restauration_ISO_choix"

		if [ $Restauration_ISO_choix = Y ];

			then

				###Suppression des anciens ISO des machines virtuelles KVM.
				echo "Suppression des anciens ISO en cours..."
				rm -rf $destination_kvm_iso
				echo "Suppression des anciens ISO termine."
				
				###Restauration des ISO des machines virtuelles KVM.
				echo "Restauration des ISO en cours..."
				rsync -ca --progress $source_full/$choix_date/racine_os/VT/ISO/ --log-file=$log $destination_kvm_iso
				echo "Restauration des ISO terminés."

				###Verification que la source et la destination soient bien identiques.
				if diff $source_full/$choix_date/racine_os/VT/ISO/ $destination_kvm_iso > /dev/null 2>&1
					then
						diff_ISO=0
					else
						diff_ISO=1
				fi

			else

				diff_ISO=0

		fi
		


###Verification de l'ensemble des tests de differences entre les sources et destinations.
echo "diff_conf = $diff_conf \n"
echo "diff_disk = $diff_disk \n"
echo "diff_ISO = $diff_ISO \n"
diff_total=`expr $diff_conf + $diff_disk + $diff_ISO`
echo "Total code erreur = $diff_total "

###Lancement des VMs
#kvmctl start *

###Envoi email

dialog --backtitle "Programme de restauration des VMs KVM"  --infobox "Veuillez patienter..." 3 34 ; sleep 15

if [ $diff_total = 0 ];
	then
		(
			$sleep_mail > /dev/null 2>&1		
			echo "ehlo host.domain.tld"
			$sleep_mail > /dev/null 2>&1
			echo "mail from:$mail_expediteur"
			$sleep_mail > /dev/null 2>&1
			echo "rcpt to:$mail_destinataire"
			$sleep_mail > /dev/null 2>&1
			echo "data"
			$sleep_mail > /dev/null 2>&1
			echo "subject:Restauration des VMs du $date: Succes"
			echo "La restauration des machines virtuelles KVM a reussie. Vous pouvez utiliser des a present vos machines virtuelles.\n\n"
			echo "##################################################"
			echo "##################################################"
			echo "##################################################\n\n"
			echo "Contenu du fichier log $log:\n"
			cat < $log
			echo "."
			$sleep_mail > /dev/null 2>&1
			echo "quit"
		) | telnet smtp.domain.tld 25  > /dev/null 2>&1

	else
		(
			$sleep_mail > /dev/null 2>&1	
			echo "ehlo host.domain.tld"
			$sleep_mail > /dev/null 2>&1
			echo "mail from:$mail_expediteur"
			$sleep_mail > /dev/null 2>&1
			echo "rcpt to:$mail_destinataire"
			$sleep_mail > /dev/null 2>&1
			echo "data"
			$sleep_mail > /dev/null 2>&1
			echo "subject:Sauvegarde des VMs du $date: Erreur !"
			echo "La restauration des machines virtuelles KVM du serveur semble avoir echouee. Verifier le fichier log pour en savoir plus.\n\n Reportez-vous au tutoriel en cas de besoin.\n\n"
			echo "##################################################"
			echo "##################################################"
			echo "##################################################\n\n"
			echo "Contenu du fichier log $log:\n"
			cat < $log
			echo "."
			$sleep_mail > /dev/null 2>&1
			echo "quit"
		) | telnet smtp.domain.tld 25 > /dev/null 2>&1
fi




		#Nettoyage du dossier /tmp
		rm $list_save_dates
		rm $list_save_dates_tri

fi











if [ $choix = Personnalise ];

	then
		echo "Restauration par dossier"

fi





if [ $choix = Total ];

	then
		echo "Restauration totale"

fi






























###Temps mort.
#Ajout d'une pause pour laisser le temps aux acces disques de se terminer correctement.
sleep $sleep_demontage

###Demontage du disque e-SATA de sauvegarde.
echo "Demontage du disque e-SATA de sauvegarde.\n" >> $log
#Demontage par label
umount $label_media
sleep 2
echo "\n\n" >> $log

###Suppression du point de montage.
echo "Suppression du point de montage $source_full.\n" >> $log
rm -rf $source_full/

###Suppression du dossier temporaire.
rm -rf $destination_temp

###Message graphique pour retirer le disque de sauvegarde/restauration.
dialog --backtitle "Programme de restauration des VMs KVM"  --title "Demontage du media externe - 95%" \
--msgbox "\n Vous pouvez retirer physiquement le media externe de restauration." 15 50

###Message graphique pour retirer le disque de sauvegarde/restauration.
dialog --backtitle "Programme de restauration des VMs KVM"  --title "Fin de la restauration - 100%" \
--msgbox "\n La restauration des machines virtuelles KVM est terminée. \n\n Vous pouvez à présent vérifier leur bon fonctionnement ou vous remettre à la documentation et au log situé à:($log) pour plus d'aide." 15 50

###Indication de fin de script.
echo "Fin de script de sauvegarde des machines virtuelles le $date_full" >> $log
echo "##################################################" >> $log
echo "##################################################" >> $log
echo "################################################## \n\n\n" >> $log

Voici la partie sur laquelle je travail pour le moment:

#Menu à option construit
		dialog --backtitle "Programme de restauration des VMs KVM" --title "Choix de date - 10%" --menu "Choisissez une date de restauration:" 15 40 20 ${OPTIONS} 2>$destination_temp/ans.$$

		choix_date_menu=`cat < $destination_temp/ans.$$`

		echo "choix_date_menu = $choix_date_menu"


		#choix_date=`sed -n `$choix_date_menup` $list_save_dates_tri`
		choix_date=$(sed -n "${choix_date_menu}p" "$list_save_dates_tri")

		echo "choix_date = $choix_date"

		###Confirmation graphique du choix de date.
		dialog --backtitle "Programme de restauration des VMs KVM"  --title "Confirmation date choisie - 15%" \
--msgbox "\n Vous avez choisie une restauration à la date du $choix_date." 15 50

Bon ne n'ai pas encore correctement commenté et il y à des parties de codes à nettoyer mais cela devrait de donner un visuel plus complet du sujet.

Voici enfin le resultat:

root@spectre-ubuntu-D-V:/home/spectre# sh /home/spectre/Bureau/Sauvegarde\ des\ machines\ virtuelles\ KVM/Restauration/Script\ actuellement\ en\ production/restore-kvm-graphique.sh
wc: /tmp/KVM-Restor/list-dates-tri: Aucun fichier ou dossier de ce type




















 Programme de restauration des VMs KVM
 ──────────────────────────────────────────────────────────────────────────────


              ┌────────Montage du media externe - 0%───────────┐
              │                                                │  
              │  Assurez-vous d'avoir bien insere le media     │  
              │ externe contenant la sauvegarde avant de       │  
              │ continuer.                                     │  
              │                                                │  
              │  Appuyez sur OK lorsque celui-ci est bien      │  
              │ insere.                                        │  
              │                                                │  
              │                                                │  
              │                                                │  
              │                                                │  
              ├────────────────────────────────────────────────┤  
              │                   <  OK  >                     │  
              └────────────────────────────────────────────────┘  
                



mkdir: impossible de créer le répertoire «/media/Semaine/»: Le fichier existe
mount : /dev/sdb1 est déjà monté ou /media/Semaine/ est occupé
mount : selon mtab, /dev/sdb1 est déjà monté sur /media/Semaine
























Lancement du choix Date
ls: impossible d'accéder à /media/Semaine/2***-**-**: Aucun fichier ou dossier de ce type

 Programme de restauration des VMs KVM
 ──────────────────────────────────────────────────────────────────────────────


                   ┌────────Choix de date - 10%───────────┐
                   │ Choisissez une date de restauration: │  
                   │ ┌──────────────────────────────────┐ │  
                   │ │          1  2014-01-01           │ │  
                   │ │          2  2014-02-25           │ │  
                   │ │          3  2014-20-05           │ │  
                   │ │          4  2016-01-01           │ │  
                   │ │          5  2000-01-01           │ │  
                   │ │          6  2010-01-01           │ │  
                   │ │                                  │ │  
                   │ │                                  │ │  
                   │ └──────────────────────────────────┘ │  
                   ├──────────────────────────────────────┤  
                   │       <  OK  >    <Cancel>           │  
                   └──────────────────────────────────────┘  
                     



choix_date_menu = 3
choix_date = 

 Programme de restauration des VMs KVM
 ──────────────────────────────────────────────────────────────────────────────


              ┌───────Confirmation date choisie - 15%──────────┐
              │                                                │  
              │  Vous avez choisie une retauration à la date   │  
              │ du .                                           │  
              │                                                │  
              │                                                │  
              │                                                │  
              │                                                │  
              │                                                │  
              │                                                │  
              │                                                │  
              │                                                │  
              ├────────────────────────────────────────────────┤  
              │                   <  OK  >                     │  
              └────────────────────────────────────────────────┘  
                



Vous avez choisi de restaurer l'ensemble des machines virtuelles depuis la sauvegarde du . 

























Restauration des ISO (CD/DVD) non selectione.
Suppression des anciens fichiers de configurations en cours...
Suppression des anciens fichiers de configurations termine.
Restauration des fichiers de configurations en cours...
sending incremental file list
rsync: change_dir "/media/Semaine//racine_os/etc/kvm" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.0]
Restauration des fichiers de configurations terminés.
Suppression des anciens disques virtuels en cours...
Suppression des anciens disques virtuels termine.
Restauration des disques virtuels en cours...
sending incremental file list
rsync: change_dir "/media/Semaine//racine_os/VT/disk" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.0]
Restauration des disques virtuels terminés.
Varible choix_date = 
Restauration_ISO_choix = N
diff_conf = 1 

diff_disk = 1 

diff_ISO = 0 

Total code erreur = 2 

 Programme de restauration des VMs KVM
 ──────────────────────────────────────────────────────────────────────────────








                      ┌────────────────────────────────┐
                      │ Veuillez patienter...          │  
                      └────────────────────────────────┘  
                        









umount : Semaine : introuvable
rm: impossible de supprimer «/media/Semaine/»: Périphérique ou ressource occupé

 Programme de restauration des VMs KVM
 ──────────────────────────────────────────────────────────────────────────────


              ┌───────Demontage du media externe - 95%─────────┐
              │                                                │  
              │  Vous pouvez retirer physiquement le media     │  
              │ externe de restauration.                       │  
              │                                                │  
              │                                                │  
              │                                                │  
              │                                                │  
              │                                                │  
              │                                                │  
              │                                                │  
              │                                                │  
              ├────────────────────────────────────────────────┤  
              │                   <  OK  >                     │  
              └────────────────────────────────────────────────┘  
                




 Programme de restauration des VMs KVM
 ──────────────────────────────────────────────────────────────────────────────


              ┌────────Fin de la restauration - 100%───────────┐
              │                                                │  
              │  La restauration des machines virtuelles KVM   │  
              │ est terminée.                                  │  
              │                                                │  
              │  Vous pouvez à présent vérifier leur bon       │  
              │ fonctionnement ou vous remettre à la           │  
              │ documentation et au log situé                  │  
              │ à:(/var/log/Sauvegarde/KVM/KVM-Restor) pour    │  
              │ plus d'aide.                                   │  
              │                                                │  
              │                                                │  
              ├────────────────────────────────────────────────┤  
              │                   <  OK  >                     │  
              └────────────────────────────────────────────────┘  
                



root@spectre-ubuntu-D-V:/home/spectre# 

Hors ligne

#13 Le 23/06/2014, à 15:22

pingouinux

Re : Multiple choix avec dialog depuis fichier

Lancement du choix Date
ls: impossible d'accéder à /media/Semaine/2***-**-**: Aucun fichier ou dossier de ce type

Ce message d'erreur est dû à la ligne 160 de ton script

                ls -dr $source_full/2***-**-** > $list_save_dates

et le fichier $list_save_dates est vide.

Hors ligne

#14 Le 23/06/2014, à 16:36

spectre3brad

Re : Multiple choix avec dialog depuis fichier

Arf, mon média externe était vide à cause du script qui supprime le point de montage à la fin mais l’écriture ne devait pas être fini enfin bref c'est OK maintenant de ce coté.

Par contre j'ai un autre soucis n’étant pas au top en cut/sed/print. J'ai la chaîne de caractère suivante:
"/media/Semaine/2014-06-23"
Et je veux recuperer seulement le "2014-06-23" comment faire?
(Sachant que cette valeur AAAA/MM/JJ est bien sur variable).

Merci wink

Hors ligne

#15 Le 23/06/2014, à 17:01

pingouinux

Re : Multiple choix avec dialog depuis fichier

Voici 2 méthodes :

$ s=/media/Semaine/2014-06-23

$ date=$(basename "$s"); echo "$date"   
2014-06-23

$ date=${s##*/}; echo "$date"
2014-06-23

Hors ligne

#16 Le 26/06/2014, à 16:20

spectre3brad

Re : Multiple choix avec dialog depuis fichier

Super ca marche du tonnere de Zeus! smile

Je peux continuer mon script...

Merci pour ton aide Pingouinux wink

Hors ligne