# Travail terminé, corrections

**URL:** <https://www.debian-fr.org/t/travail-termine-corrections/33195>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 2:54 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195 "2016-02-21T02:54:53Z")\
**Posts on this page:** 20\
**Page:** 3

<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, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/41 "2016-02-21T02:55:35Z")

</div>

Dans la ligne qui suit, et qui fonctionne, ne conviendrait-il pas d’«&nbsp;entourer&nbsp;» le premier groupe (en rouge) ?

> [@](#):
>
> [-e «&nbsp;$ddext&nbsp;»] && [-e «&nbsp;$ddext2&nbsp;»] || { echo «&nbsp;Le DDext ne repond pas !&nbsp;» \>&2; exit 1; }

---

<div class="post-metadata">

**Author:** ![Totor](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/58f4c7/32.png) [@Totor](https://www.debian-fr.org/u/Totor)\
**Post date:** [Février 21, 2016, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/42 "2016-02-21T02:55:37Z")

</div>

Re,

Alors, tu peux regrouper de 2 façons (mais ça n’a pas d’intérêt à mon sens) :  
1 /

```auto
{ [-e "$ddext"] && [-e "$ddext2"]; } || { echo "Le DDext ne repond pas !" >&2; exit 1; }
```

ce qui revient exactement au même :

2 /

```auto
[-e "$ddext" -a -e "$ddext2"] || { echo "Le DDext ne repond pas !" >&2; exit 1; }
```

ce qui revient exactement au même en terme de résultat mais pas en terme de comportement.  
Dans ce cas les 2 tests ( -e “$ddext” et -e “$ddext2”) sont effectués. Ce qui est inutile puisque si la 1ere condition n’est pas vraie, nul besoin de vérifier la 2nde. Dans notre cas, ça n’a pas d’importance mais on peut imaginer un cas où cela peut en avoir :

```auto
# création ou suppression du contenu du fichier "fichier"
printf "" > fichier
[$RANDOM -eq 1 -a $(<traitement> if <condition>; then echo 2>fichier; echo 2; else echo $RANDOM>fichier; echo $RANDOM; fi) -eq 3] || { <traitement>; }
<traitement en fonction du contenu de fichier>
```

Après la condition, on pourrait effectuer un traitement en fonction du contenu de et s’attendre à ce qu’il soit vide. Mais ce ne sera jamais le cas car fichier aura toujours un contenu.

---

<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, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/43 "2016-02-21T02:55:38Z")

</div>

[quote=«&nbsp;Totor&nbsp;»]Re,

Alors, tu peux regrouper de 2 façons (mais ça n’a pas d’intérêt à mon sens) :  
1 /

```auto
{ [-e "$ddext"] && [-e "$ddext2"]; } || { echo "Le DDext ne repond pas !" >&2; exit 1; }
```

ce qui revient exactement au même :

2 /

```auto
[-e "$ddext" -a -e "$ddext2"] || { echo "Le DDext ne repond pas !" >&2; exit 1; }
```

ce qui revient exactement au même en terme de résultat mais pas en terme de comportement.  
Dans ce cas les 2 tests ( -e «&nbsp;$ddext&nbsp;» et -e «&nbsp;$ddext2&nbsp;») sont effectués. Ce qui est inutile puisque si la 1ere condition n’est pas vraie, nul besoin de vérifier la 2nde. Dans notre cas, ça n’a pas d’importance mais on peut imaginer un cas où cela peut en avoir :

```auto
# création ou suppression du contenu du fichier "fichier"
printf "" > fichier
[$RANDOM -eq 1 -a $(<traitement> if <condition>; then echo 2>fichier; echo 2; else echo $RANDOM>fichier; echo $RANDOM; fi) -eq 3] || { <traitement>; }
<traitement en fonction du contenu de fichier>
```

Après la condition, on pourrait effectuer un traitement en fonction du contenu de et s’attendre à ce qu’il soit vide. Mais ce ne sera jamais le cas car fichier aura toujours un contenu.[/quote]  
Super explication ![:023](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif "OK")  
J’avais essayé la première solution mais j’avais omis le ‹&nbsp;;&nbsp;›

[quote][color=#0000FF]{ && [-e «&nbsp;$ddext2&nbsp;»][size=150];[/size] } || { echo «&nbsp;Le DDext ne repond pas !&nbsp;» \>&2; exit 1; }  
[/quote]

Mon point de vue, c’est le côté logique car dans ma ligne originale, on voit au même «&nbsp;niveau&nbsp;» un ‹&nbsp;&&&nbsp;› et ensuite un ‹&nbsp;||&nbsp;›.

> [@](#):
>
> [color=#FF0000] && [-e «&nbsp;$ddext2&nbsp;»] || { echo «&nbsp;Le DDext ne repond pas !&nbsp;» \>&2; exit 1; }

le second groupe est bien «&nbsp;délimité&nbsp;», alors que le premier ne l’est pas, ça me choque.

Mais comme tu m’expliques que ça n’a pas d’intérêt, je vais laisser comme ça.

---

<div class="post-metadata">

**Author:** ![Totor](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/58f4c7/32.png) [@Totor](https://www.debian-fr.org/u/Totor)\
**Post date:** [Février 21, 2016, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/44 "2016-02-21T02:55:40Z")

</div>

> [@ricardo](#):
>
> Super explication ![:023](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif "OK")

de rien…

> [@ricardo](#):
>
> J’avais essayé la première solution mais j’avais omis le ‹&nbsp;;&nbsp;›

et pourtant, il n’y a pas si [longtemps](http://www.debian-fr.org/message348923.html#p348923)… 😉

> [@ricardo](#):
>
> Mon point de vue, c’est le côté logique car […]ça me choque

oui, je comprends

---

<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, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/45 "2016-02-21T02:55:40Z")

</div>

Oui pour le “il n’y a pas si longtemps” ![:007](https://www.debian-fr.org/uploads/default/original/1X/e72d3b45191f9b2363aa21bfae6f42497bc4042b.gif "yeux-coeur")  
Je pense que maintenant, c’est rentré.  
Je suis content que tu comprennes mon "choking"  
Allez, je pense avoir terminé mon script et je vais le proposer pour une dernière (?) inspection :

[code]#!/bin/bash

ddext="/dev/sdb9"  
ddext2="/dev/sdb10"  
autre="/mnt/autre"

[-e “$ddext”] && [-e “$ddext2”] || { echo “Le DDext ne repond pas !” \>&2; exit 1; } # teste l’existence des partitions de sauvegarde  
[-e “$autre”] || { echo “Le dossier de montage n’existe pas !” \>&2; exit 1; } # teste l’existence du dossier de montage

read -p 'sauve ou sauve2 ? : ’ part # choix de la sauvegarde  
if [“$part” = sauve]  
then  
sudo mount -t ext3 $ddext $autre  
elif [“$part” = sauve2]  
then   
sudo mount -t ext2 “$ddext2” "$autre"  
else   
echo “mauvaise entree” \>&2; exit 1;  
fi

echo -e "\033[4mCONTENU de la CORBEILLE\033[0m"  
echo  
ls ~/.local/share/Trash/files  
echo  
read -p "on peut la vider ? o/n : " corbeille # si la corbeille est vide ou si on ne veut pas la vider, on ne sort pas  
if [“$corbeille” = o]  
then  
rm -rf ~/.local/share/Trash/\*  
echo -e "\033[4mCORBEILLE VIDEE\033[0m"  
fi

read -p "on peut vider les dossiers de controle ? o/n : " controle # Il s’agit des 'backup-dir’  
if [“$controle” = o]  
then  
sudo rm -rf /home/controle/\* /home/controle/.\* /home/controle-ricardo/\* /home/controle-ricardo/.\*  
else  
exit 1  
fi

read -p "prêt pour la sauvegarde ? o/n : " onyva  
if [“$onyva” = o]  
then  
sudo rsync -av --del --backup --backup-dir=/home/controle/ --exclude-from=/root/exclure / /mnt/autre/sauve  
sudo rsync -av --del --backup --backup-dir=/home/controle-ricardo/ /home/ricardo/ /mnt/autre/sauve-ricardo  
else  
exit 1  
fi

sudo umount “$autre”

sudo iptables-save # là, ce sont des pense-bêtes hebdomadaires qui n’ont rien à voir avec la sauvegarde  
printf ‘\E[33;45m’"\n\n PENSE A DEBRANCHER LE DDext \n\n AINSI QU’A UPDATER / UPGRADER \n\n\n"; tput sgr0

exit  
[/code]

---

<div class="post-metadata">

**Author:** ![micky979](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/d9b06d/32.png) [@micky979](https://www.debian-fr.org/u/micky979)\
**Post date:** [Février 21, 2016, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/46 "2016-02-21T02:55:41Z")

</div>

Bonjour,

Tu as une variable contenant /mnt/autre/ et tu utilise le chemin dans le rsync au lieu de la variable.

Je ne suis pas fan de tes premières lignes de test ça rend les choses moins lisible, je trouve, mais ce n’est qu’un avis perso.

Tes tests, if, elif aurait été mieux remplacé par un case comme proposé par MisterFreeze et moi-même.

Aucune gestion des codes erreurs de tes commandes. Si le mount ne se fait pas, tu ne quitte pas ou tu n’informe pas par exemple.

Après, je comprend pas pourquoi tu sors si on ne supprime par le controle et sortir en erreur avec un petit message, c’est un peux mieux.

---

<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, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/47 "2016-02-21T02:55:42Z")

</div>

> [@micky979](#):
>
> Je ne suis pas fan de tes premières lignes de test ça rend les choses moins lisible, je trouve, mais ce n’est qu’un avis perso.

C’est clair que fasse à

```auto
die "Le DDext ne repond pas !" unless(-e $ddext and -e $ddext2);
die "Le dossier de montage n'existe pas !" unless(-d $autre);
```

Il n’y a pas photo.

Pourquoi tu test un dossier avec -e ricardo ?

---

<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, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/48 "2016-02-21T02:55:42Z")

</div>

@ Micky

> [@](#):
>
> Tu as une variable contenant /mnt/autre/ et tu utilise le chemin dans le rsync au lieu de la variable.

Oubli de ma part car j’ai copié/collé la ligne que j’emploie habituellement et qui est dans mon «&nbsp;pense-bête&nbsp;». Je vais réparer.

> [@](#):
>
> Je ne suis pas fan de tes premières lignes de test ça rend les choses moins lisible, je trouve, mais ce n’est qu’un avis perso.

Ben ça récapitule en une seule ligne, trois lignes et je trouve que c’est tout aussi «&nbsp;causant&nbsp;», sauf ptet la fin, indiqué par Totor.

> [@](#):
>
> Tes tests, if, elif aurait été mieux remplacé par un case comme proposé par MisterFreeze et moi-même.

Ben je ne vois pas du tout la simplicité entre la proposition de MisterFreez (23 lignes) :

```auto
read -p 'sauve ou sauve2 ? : ' part # quelle sauvegarde veux-tu utiliser ?
case $part in
  "sauve") # si tu choisis la première ...
    mkdir -p "$pmount"
    if [! -e $hdd1]; then
        echo "$hdd1 est introuvable"
        exit 1
    else
    sudo mount -t ext3 $hdd1 $pmount
  ;;
  "sauve2") # si tu choisis la seconde ...
    mkdir -p "$pmount"
    if [! -e $hdd2]; then
        echo "$hdd2 est introuvable"
        exit 1
    else
    sudo mount -t ext2 $hdd2 $pmount
  ;;
  *)     
    echo "mauvaise entrée"
    exit 2
  ;;
esac
```

ET mes «&nbsp;if…fi&nbsp;» (10 lignes)

```auto
read -p 'sauve ou sauve2 ? : ' part # choix de la sauvegarde
   if ["$part" = sauve]
   then
          sudo mount -t ext3 $ddext $autre
   elif ["$part" = sauve2]
   then      
      sudo mount -t ext2 "$ddext2" "$autre"
   else      
   echo "mauvaise entree" >&2; exit 1;
   fi
```

Et encore, j’utilise le ‹&nbsp;then&nbsp;› sur une autre ligne, qui, si je place à la suite, réduit encore de deux lignes.  
Le «&nbsp;case&nbsp;», je l’ai souvent employé quand je faisais en Pascal mais AMA, il faut au minimum 4 choix pour qu’il soit avantageux.

> [@](#):
>
> Aucune gestion des codes erreurs de tes commandes. Si le mount ne se fait pas, tu ne quitte pas ou tu n’informe pas par exemple.

Ils sont gérés puisque il sont redirigés vers la sortie standard par le ’ \>&2; exit 1; ’  
Peux-tu me donner un exemple d’information car je ne sais pas faire.  
On est sûr que la partition est présente puisque testée plus haut. Donc, pour que le montage ne s’effectue pas, il faudrait que la ligne soit ‹&nbsp;faute&nbsp;›,  
or je suis sûr qu’elle est bonne car je m’en sers depuis longtemps 🙂 . Je testerai quand même cette possibilité. Reste une mauvaise entrée et ça c’est prévu dans le ‹&nbsp;else&nbsp;› :  
’ echo «&nbsp;mauvaise entree&nbsp;» \>&2; exit 1; ’

> [@](#):
>
> Après, je comprend pas pourquoi tu sors si on ne supprime par le controle et sortir en erreur avec un petit message, c’est un peux mieux.

De crainte que la réécriture ne se fasse pas correctement. Si je ne sors pas, le processus continue et arrivé à la commande de sauvegarde proprement dite, il risque d’y avoir conflit : –backup --backup-dir=/home/controle/  
Remarque bien que je n’ai pas testé et il est possible qu’il y ait surécriture ??? . Je testerai.  
D’accord pour le message en plus mais indique-moi comment l’ajouter.

Cela dit, je suis toujours perméable aux idées et je ne demande qu’à être convaincu.  
 ![:006](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif "salut")  
Michel, je te réponds ce soir ![:006](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif "salut")

---

<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, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/49 "2016-02-21T02:55:43Z")

</div>

ricardo la lisibilité ne s’évalue pas en nombre de lignes. Il y a des scripts longs plus simples que des courts (à fonctionnalité égale).

Ensuite il vaut mieux évaluer à fonctionnalité égale :

`read -p 'sauve ou sauve2 ? : ' part # choix de la sauvegarde
case $part in
  sauve)
    sudo mount -t ext3 "$hdd1" "$pmount"
  ;;
  sauve2)
    sudo mount -t ext2 "$hdd2" "$pmount"
  ;;
  *)     
    echo "mauvaise entree" >&2; exit 1;
  ;;
esac`

`read -p 'sauve ou sauve2 ? : ' part # choix de la sauvegarde
if ["$part" = sauve]
then
    sudo mount -t ext3 "$ddext" "$autre"
elif ["$part" = sauve2]
then     
    sudo mount -t ext2 "$ddext2" "$autre"
else     
    echo "mauvaise entree" >&2; exit 1;
fi`

12 pour moi et 10 pour toi c’est déjà moins important.  
[ul]  
[li]Le switch a une sémantique plus forte. On sait que tu évalue le $part et les différentes valeurs qu’il peut prendre, pas la peine de revoir à chaque if si quel est la condition évaluée.[/li]  
[li]Le switch est plus maintenable si tu veut renommer $part, tu ne le fait qu’une seule fois.[/li]  
[li]Je trouve le switch plus aéré (les lignes sont moins chargées).[/li][/ul]

Si tu aime le compacte, tu peut faire ainsi :

`read -p 'sauve ou sauve2 ? : ' part # choix de la sauvegarde
case $part in
  sauve) sudo mount -t ext3 "$hdd1" "$pmount" ;;
  sauve2) sudo mount -t ext2 "$hdd2" "$pmount" ;;
  *) echo "mauvaise entree" >&2; exit 1; ;;
esac`

Mais il n’y a aucune obligation je connais des camarades de promo qui ne s’en servent pas.

Vois le vraiment comme un style que tu donne à ton code et fais comme tu le veux. 😆

---

<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, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/50 "2016-02-21T02:55:44Z")

</div>

> [@MisterFreez](#):
>
> Ensuite il vaut mieux évaluer à fonctionnalité égale :
> 
> `read -p 'sauve ou sauve2 ? : ' part # choix de la sauvegarde
> case $part in
> sauve)
> sudo mount -t ext3 "$ddext" "$autre"
> ;;
> sauve2)
> sudo mount -t ext2 "$ddext2" "$autre"
> ;;
> *)     
> echo "mauvaise entree" >&2; exit 1;
> ;;
> esac`

OK, convaincu par celui-là, mais avec mes variables franchouillardes 😃

@ Micky979 :  
Les données sont bien écrasées dans les dossiers de contrôle, donc j’élimine la partie suivante qui n’a plus lieu d’être :

`read -p "on peut vider les dossiers de controle ? o/n : " controle	# Il s'agit des 'backup-dir'
	if ["$controle" = o]
	then
		sudo rm -rf /home/controle/* /home/controle/.* /home/controle-ricardo/* /home/controle-ricardo/.*
	else
		 exit 1
	fi`

---

<div class="post-metadata">

**Author:** ![ggoodluck47](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@ggoodluck47](https://www.debian-fr.org/u/ggoodluck47)\
**Post date:** [Février 21, 2016, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/51 "2016-02-21T02:55:45Z")

</div>

Salut,

Une ligne de commentaire en début de script spécifiant ce que ce script fait est un plus 🙂

---

<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, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/52 "2016-02-21T02:55:46Z")

</div>

Oui Gérard, tu as raison mais je n’en suis pas encore à le proposer comme script-tuto, pour l’instant, je n’en suis qu’à la demande de correction.  
Si par la suite, on pense que ça vaut la peine d’être proposé à d’autres, on améliorera la «&nbsp;communication&nbsp;».  
On pourra aussi y ajouter un cron, pour ceux qui aiment l’automatisation. Cela ne me concerne pas car j’aime rester maître de mes sauvegardes, quand je les décide.  
 ![:006](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif "salut")

---

<div class="post-metadata">

**Author:** ![ggoodluck47](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@ggoodluck47](https://www.debian-fr.org/u/ggoodluck47)\
**Post date:** [Février 21, 2016, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/53 "2016-02-21T02:55:46Z")

</div>

Re,

Le commentaire “Utilisation” n’est pas destiné aux autres mais à notre propre mémoire si souvent défaillante 😆

---

<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, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/54 "2016-02-21T02:55:48Z")

</div>

Alors si c’est ça, tu as mal lu car ils existent.  
Ci-plus-bas (nouvelle locution adverbiale made by Ricardo 😒 ), tu as les commentaires en bout de ligne, quand le texte est insuffisamment explicite.  
Cette mouture est obsolète :  
[https://www.debian-fr.org/travail-termine-corrections-t34444-25.html#p349066](https://www.debian-fr.org/travail-termine-corrections-t34444-25.html#p349066)  
De plus, les dernières lignes viennent compléter mon “pense-bête”.  
J’attends encore la réponse de Micky qui devrait me permettre d’ajouter les explications au code de sortie prématuré.

---

<div class="post-metadata">

**Author:** ![ggoodluck47](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@ggoodluck47](https://www.debian-fr.org/u/ggoodluck47)\
**Post date:** [Février 21, 2016, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/55 "2016-02-21T02:55:49Z")

</div>

Re,

Ce ne sont pas des explications aux lignes de code mais le but des scripts que je m’attend toujours à voir dès la seconde ligne.

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Février 21, 2016, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/56 "2016-02-21T02:55:49Z")

</div>

Dès que la correction sera finit l’explication sera pondue je suppose pour le proposer à qui en à besoin ![:033](https://www.debian-fr.org/uploads/default/original/1X/42cd8bd0447ecac24cdff1e26fa990a5c8442791.gif "petard")

---

<div class="post-metadata">

**Author:** ![ggoodluck47](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@ggoodluck47](https://www.debian-fr.org/u/ggoodluck47)\
**Post date:** [Février 21, 2016, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/57 "2016-02-21T02:55:49Z")

</div>

Re,

> [@Clochette](#):
>
> Dès que la correction sera finit l’explication sera pondue je suppose pour le proposer à qui en à besoin ![:033](https://www.debian-fr.org/uploads/default/original/1X/42cd8bd0447ecac24cdff1e26fa990a5c8442791.gif "petard")

Nous n’avons pas les mêmes valeurs, moi c’est la première ligne que j’écris ! Elle est destinée à m’éclaircir les idées en me fixant clairement l’objectif à atteindre. Comme une sorte de résumé de l’analyse 😆

---

<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, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/58 "2016-02-21T02:55:50Z")

</div>

Oui, je comprends, comme une première ligne de tuto

[quote]#sauvegarde périodique de sa machine sur un DDext, après :  
[ul]# vérification de l’existence de la partition de réception (ici = deux partitions différentes pour deux sauvegardes hebdomadaires alternées)

# vérification de l’existence du dossier de montage

# choix de la partition de sauvegarde et montage de celle-ci

# vidage ou non de la corbeille, selon choix

# sauvegarde proprement dite, avec mise en réserve des fichiers remplacés

# démontage du dossier de montage

[/ul][/quote]  
Ce qui suit est déjà expliqué dans le tuto que j’avais fait et qu’il me faudra reprendre et mettre à jour  
[https://www.debian-fr.org/sauvegarde-clonage-d-une-sid-t25179.html](https://www.debian-fr.org/sauvegarde-clonage-d-une-sid-t25179.html)

[quote]# Avant la première exploitation de ce script, il faudra créer :  
[ul]# un dossier /mnt/votre\_dossier\_de\_montage (ici = ‹&nbsp;autre&nbsp;›)

# un ou deux dossier(s) de «&nbsp;backup&nbsp;» (ici = ‹&nbsp;controle&nbsp;› et ‹&nbsp;controle-ricardo&nbsp;›)

# un dossier d’exclusion des fichiers/dossiers à ne pas sauvegarder (ici = ‹&nbsp;exclure&nbsp;›)

# Et, il faudra, bien évidemment, avoir à disposition un DDext contenant une partition de capacité suffisante pour recevoir la sauvegarde[/ul][/quote]

C’est assez clair comme ça, Chef ? ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")

---

<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, 2:55 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/59 "2016-02-21T02:55:52Z")

</div>

Partie “corbeille” :  
J’ai rajouté un test car en cas de corbeille vide, il ne trouve pas le dossier ‘files’", ce qui est logique.  
Les tests sont bons mais est-ce que là aussi il faut préférer un “case” ?

`echo -e "\033[4mCONTENU de la CORBEILLE\033[0m"        
if [-e ~/.local/share/Trash/files]	# teste si la corbeille est pleine 
then
 	ls ~/.local/share/Trash/files	# liste les fichiers qu'elle contient
	read -p "on peut la vider ? o/* : " corbeille	 
		if ["$corbeille" = o] 
		then
			rm -rf ~/.local/share/Trash/*
			echo -e "\033[4mCORBEILLE VIDEE\033[0m"
		fi
else
	echo "La corbeille est vide"
fi`

---

<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, 2:56 UTC](https://www.debian-fr.org/t/travail-termine-corrections/33195/60 "2016-02-21T02:56:29Z")

</div>

> [@Clochette](#):
>
> Dès que la correction sera finit l’explication sera pondue je suppose pour le proposer à qui en à besoin ![:033](https://www.debian-fr.org/uploads/default/original/1X/42cd8bd0447ecac24cdff1e26fa990a5c8442791.gif "petard")

Bien sûr, ça sera ajouté au tuto.

[Page précédente](https://www.debian-fr.org/t/travail-termine-corrections/33195.md?page=2)

[Page suivante](https://www.debian-fr.org/t/travail-termine-corrections/33195.md?page=4)
