# Est-ce que ça vous semble correct ou y-a-t-il mieux ?

**URL:** <https://www.debian-fr.org/t/est-ce-que-ca-vous-semble-correct-ou-y-a-t-il-mieux/34198>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 3:33 UTC](https://www.debian-fr.org/t/est-ce-que-ca-vous-semble-correct-ou-y-a-t-il-mieux/34198 "2016-02-21T03:33:07Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 3:33 UTC](https://www.debian-fr.org/t/est-ce-que-ca-vous-semble-correct-ou-y-a-t-il-mieux/34198/1 "2016-02-21T03:33:07Z")

</div>

Dans mon script “sauvegarde”, j’ai ajouté la possibilité de sauvegarder aussi un clone de ma sid plus un clone d’une /home séparée.  
Cela donne 4 possibilités sur un seul script :  
sauvegarder sur une partition d’un DDext (sauve)  
sauvegarder sur une seconde partition (sauve2)  
sauvegarder un clone complet d’une sid sur une 3e part.(sauve-clone)  
sauvegarder un clone de /home sur une 4e part. (sauve-clone-Home)  
Ces deux dernières partitions font une sid parfaitement fonctionnelle.  
Je n’ai rien modifié de mon script initial, sinon ajouter la suite des variables et modifié le dernier bloc.  
Les 4 sauvegardes ont été testées et tout fonctionne parfaitement  
C’est sur ce bloc que je voudrais avoir votre avis, sachant que “case” 1) et 2) doivent être exécutés l’un après l’autre mais que “case” 3) et 4) doivent l’être individuellement.  
Sachant aussi que “index” est donné plus haut dans le script.

`read -p "prêt pour la sauvegarde ? o/* : " onyva
      	if ["$onyva" = o]
      	then
      		case ${index} in
    		1|2)
			for index in '1' '2'
      	   		do
				sauvegarde "${exclure[$index]}" "${dossier_a_sauver[$index]}" "${sauve[$index]}"
	   		done
  		    ;;
    		3|4)
				sauvegarde "${exclure[$index]}" "${dossier_a_sauver[$index]}" "${sauve[$index]}"
  		    ;;
 		esac
      	fi
`

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 3:33 UTC](https://www.debian-fr.org/t/est-ce-que-ca-vous-semble-correct-ou-y-a-t-il-mieux/34198/2 "2016-02-21T03:33:17Z")

</div>

Qu’est ce qui indique à l’utilisateur ce que représente chaque chiffre ? Tu peux montrer les 10 lignes précédentes ?

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 3:33 UTC](https://www.debian-fr.org/t/est-ce-que-ca-vous-semble-correct-ou-y-a-t-il-mieux/34198/3 "2016-02-21T03:33:24Z")

</div>

Voilà que les points importants pour la compréhension

function sauvegarde()  
{

```
sudo rsync -av --del --exclude-from=[color=#FF0000][b]"$1" "$2" "$3"[/b][/color]
  
	+ blabla

```

## }

mount\_rep="/mnt/autre"

# la première donnée, vide, figure le [0], de façon à commencer par [1]

ddext=(’’ ‘/dev/sdb9’ ‘/dev/sdb10’ ‘/dev/sdb7’ ‘/dev/sdb1’)  
systeme\_fich=(’’ ‘ext3’ ‘ext2’ ‘ext3’ ‘ext3’)  
exclure=(’’ ‘/root/exclure’ ‘/home/ricardo/.exclure’ ‘/root/exclure’ ‘/home/ricardo/.exclure’)  
sauve=(’’ ‘/mnt/autre/sauve’ ‘/mnt/autre/sauve-ricardo’ ‘/mnt/autre’ ‘/mnt/autre/ricardo’)  
dossier\_a\_sauver=(’’ ‘/’ ‘/home/ricardo/’ ‘/’ '/home/ricardo/’)

## CE QUI EST EN ROUGE A ÉTÉ AJOUTÉ PAR RAPPORT AU SCRIPT D’ORIGINE

PS3="Entrez le N° de la sauvegarde choisie : "  
select choix\_sauvegarde in “sauve” “sauve2” “sauve-clone” “sauve-Home-clone” quitter  
do  
case ${REPLY} in  
[1,2,3,4]) ### avant : [1-2] ### “[1-4])” ???  
index=${REPLY}  
if [! -e “${ddext[$index]}” ]  
then  
printf “\n Impossible de se connecter à %s \n Vérifiez qu’il s’agit de la bonne partition et recommencez \n” “${ddext[$index]}” \>&2; exit 1;  
else  
if ! grep -q “^${ddext[$index]} “${mount\_rep}” ${systeme\_fich[$index]}” /etc/mtab  
then  
sudo mount -t “${systeme\_fich[$index]}” “${ddext[$index]}” “${mount\_rep}” || { deja\_montee=1; sortie\_propre; }  
break  
else

```
	+ blabla

```

* * *

Bloc reconstruit :

## `read -p "prêt pour la sauvegarde ? o/* : " onyva if ["$onyva" = o] then case "$index" in 1|2) for choix in '1' '2' do sauvegarde "${exclure[$choix]}" "${dossier_a_sauver[$choix]}" "${sauve[$choix]}" done ;; 3|4) sauvegarde "${exclure[$index]}" "${dossier_a_sauver[$index]}" "${sauve[$index]}" ;; esac fi`

C’EST SURTOUT LE DERNIER BLOC POUR LEQUEL J’AIMERAIS SAVOIR SI ON PEUT AMÉLIORER ?  
COMME IL EST IL FONCTIONNE PARFAITEMENT.  
JE RAPPELLE QUE 1 ET 2 DOIVENT ÊTRE EXÉCUTÉ L’UN APRÈS L’AUTRE OBLIGATOIREMENT  
MAIS QUE  
3 ET 4 SONT À EXÉCUTER INDIVIDUELLEMENT, AU CHOIX.

EDIT :  
Pour éviter la confusion, j’ai modifié le ‘index’ du ‘for’ par “choix”
