# Amélioration script sauvegarde

**URL:** <https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762 "2016-02-21T12:27:13Z")\
**Posts on this page:** 17\
**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, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762/1 "2016-02-21T12:27:13Z")

</div>

J’ai ajouté la sauvegarde de mon serveur commandé en SSH, à mon script.  
Les tests sont parfaits donc là n’est pas la question qui me préoccupe :  
J’ai acheté un second DDext pour doubler mes sauvegardes 😒😒😒 , je sais !  
Les deux DDext sont reliés SATA sur ma machine MAIS je n’ai qu’une prise sata.  
D’un côté, ça m’évitera de faire des erreurs puisqu’un seul à la fois des DDext sera relié.  
Je peux, bien sûr, doubler mon script en ne modifiant que les données (système de fichier = ext3 sur l’un et ext4 sur l’autre) (partitions différentes des DDext). C’est la méthode de facilité.  
Je pense toutefois, qu’il serait plus “propre” de gérer le tout via un même script.

1/  
Il y a la méthode des UUIDs qui permettrait de différencier les partitions mais je n’ai pas réussi à la mettre en application. De plus, il me faudrait quand même gérer la différebce de système de fichiers et il me faudrait doubler les choix, ce qui va faire brouillon.

2/  
Un choix qui permettrait au script de reconnaître le DDext connecté.

Les lignes du script qui sont concernées par ce choix :

[quote]# la première donnée, vide, figure le [0], de façon à commencer par [1]  
ddext=(’’ ‘/dev/sdb10’ ‘/dev/sdb8’ ‘/dev/sdb6’ ‘/dev/sdb1’)  
systeme\_fich=(’’ ‘ext3’ ‘ext2’ ‘ext3’ ‘ext3’)[/quote]  
Ensuite, un IF qui dirigerait vers la bonne partition, du genre :

if DD = machin  
then  
ddext=(’’ ‘/dev/sdb10’ ‘/dev/sdb8’ ‘/dev/sdb6’ ‘/dev/sdb1’)  
systeme\_fich=(’’ ‘ext3’ ‘ext2’ ‘ext3’ ‘ext3’)  
if DD = truc  
then  
ddext=(’’ ‘/dev/sdb2’ ‘/dev/sdb1’ ‘/dev/sdb5’ ‘/dev/sdb3’)  
systeme\_fich=(’’ ‘ext4’ ‘ext4’ ‘ext4’ ‘ext4’)  
fi

Une idée ?

---

<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, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762/2 "2016-02-21T12:27:13Z")

</div>

Les labels il n’y a que ça de vrais. C’est des noms logiques que tu choisi donc tu peux faire ce que tu veux.  
Tu nome tes partitions SAUV11, SAUV12, SAUV13 pour le premier disque et SAUV21, SAUV22 et SAUV23 pour le second.

Pour savoir quel disque est monté :

```auto

```

count vaudra 1 si c’est le premier et 2 si c’est le second.

Mais tu peut faire des chose plus brutales encore. Si tu nome tes partitions SAUV11-ext3 (etc) :

`ddext=('' /dev/disk/by-label/SAUV* )
systeme_fich=('' $(print -l /dev/disk/by-label/SAUV* | sed -n 's/.*SAUV..-\(ext.\).*/\1/p') )`  
Te donneras d’emblé les noms partitions et les système de fichiers correspondants sans avoir de contitions (if).  
Il faut alors remplacer les

```auto

```

par

```auto

```

---

<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, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762/3 "2016-02-21T12:27:16Z")

</div>

Intéressant tout ça et j’ai envie de tester tout pour choisir ensuite.  
Mais avant tout, j’ai besoin de savoir comment donner des labels à des partitions déjà montées et, pour certaines qui doivent déjà en avoir, comment modifier ces noms de label.  
Je crois pouvoir faire ça depuis Gparted mais je me méfie toujours de ce truc donc, s’il y a plus simple en ligne de commande, je suis preneur.

---

<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, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762/4 "2016-02-21T12:27:19Z")

</div>

voila : [admin-linux.fr/?p=218](http://www.admin-linux.fr/?p=218)

---

<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, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762/5 "2016-02-21T12:27:19Z")

</div>

Merci mon Doudou, y’a vraiment tout pour m’occuper demain ![:023](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif "OK")  
 ![:006](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif "salut")

---

<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, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762/6 "2016-02-21T12:27:26Z")

</div>

Je n’ai pas donné exactement les mêmes labels que ceux proposés mais il trouve bien deux partoches qui commencent par “sauv”.  
Par contre, le résultat n’est pas ce que tu disais, Michel  
???`ricardo@sid-sda8:~$ sudo count=$(print -l /dev/disk/by-label/SAUV* | sed -n 's/.*SAUV\(.\).*/\1/p')
Warning: unknown mime-type for "-l" -- using "application/octet-stream"
Warning: unknown mime-type for "/dev/disk/by-label/SAUVESERV110" -- using "application/octet-stream"
Warning: unknown mime-type for "/dev/disk/by-label/SAUVESID18" -- using "application/octet-stream"
Error: no such file "-l"
Error: no read permission for file "/dev/disk/by-label/SAUVESERV110"
Error: no read permission for file "/dev/disk/by-label/SAUVESID18"
usage: sudo [-D level] -h | -K | -k | -V
usage: sudo -v [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid]
usage: sudo -l[l] [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-U user name] [-u user name|#uid] [-g groupname|#gid] [command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid] [-g groupname|#gid] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid] file ...
`

---

<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, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762/7 "2016-02-21T12:27:26Z")

</div>

Comment doit-on porter le LABEL à la place de ‘/dev/sdx’ dans cette ligne en admettant que la correspondance soit : SAUV1 ; SAUV2 ; SAUV3 ; SAUV4

```auto

```

‘SAUV1’  
ou  
’LABEL=SAUV1’  
❓

EDIT : essais tentés = aucune des deux façons 😕  
Comment écrire cette ligne, alors ?

---

<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, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762/8 "2016-02-21T12:27:26Z")

</div>

[quote=“ricardo”]Je n’ai pas donné exactement les mêmes labels que ceux proposés mais il trouve bien deux partoches qui commencent par “sauv”.  
Par contre, le résultat n’est pas ce que tu disais, Michel  
???`ricardo@sid-sda8:~$ sudo count=$(print -l /dev/disk/by-label/SAUV* | sed -n 's/.*SAUV\(.\).*/\1/p')
Warning: unknown mime-type for "-l" -- using "application/octet-stream"
Warning: unknown mime-type for "/dev/disk/by-label/SAUVESERV110" -- using "application/octet-stream"
Warning: unknown mime-type for "/dev/disk/by-label/SAUVESID18" -- using "application/octet-stream"
Error: no such file "-l"
Error: no read permission for file "/dev/disk/by-label/SAUVESERV110"
Error: no read permission for file "/dev/disk/by-label/SAUVESID18"
usage: sudo [-D level] -h | -K | -k | -V
usage: sudo -v [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid]
usage: sudo -l[l] [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-U user name] [-u user name|#uid] [-g groupname|#gid] [command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid] [-g groupname|#gid] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid] file ...
`[/quote]  
Alors sudo prend un commandes (avec un programme) là tu fait juste une affectation qui n’a pas besoin des droits admin.  
print -l est un truc de zsh (pas fait gaffe) tu peut le remplacer par ça en bash

```auto

```

Ma commande sed était adapté à mon nommage. Si j’ai bien compris tu les a appelé SAUVSERVNM et SAUVSIDNM (avec N le numéro qui indique le disque et M la partition). Donc Je dirais qu’il faut le remplacer comme ça :

```auto

```

---

<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, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762/9 "2016-02-21T12:27:26Z")

</div>

[quote=“ricardo”]Comment doit-on porter le LABEL à la place de ‘/dev/sdx’ dans cette ligne en admettant que la correspondance soit : SAUV1 ; SAUV2 ; SAUV3 ; SAUV4

```auto

```

‘SAUV1’  
ou  
’LABEL=SAUV1’  
❓

EDIT : essais tentés = aucune des deux façons 😕  
Comment écrire cette ligne, alors ?[/quote]  
Je dirais le premier en remplaçant les mount par mount -L.

---

<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, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762/10 "2016-02-21T12:27:26Z")

</div>

Une chose à la fois :  
j’ai essayé toutes les possibilité et j’ai un retour à ‘\>’ 😕  
Donne moi la ligne complète que tu penses être la bonne et qui doit remplacer ça :

```auto

```

en effet, mes labels sont un peu différents et, si j’ai bien compris, ils devraient impérativement commencer par ‘SAUV’ ? ce qui n’est pas le cas, seuls deux sont OK :  
SAUVESID18  
SAUVESERV110  
S’il le faut, je modifierai.

---

<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, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762/11 "2016-02-21T12:27:27Z")

</div>

Après réflexion on peut simplifier cette ligne :

```auto

```

Ça ne marchera pas tel quel il faut que je connaisse tout les label pour pouvoir définir l’expression rationnelle du sed.

Tes labels sont complètement différent ?

---

<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, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762/12 "2016-02-21T12:27:27Z")

</div>

Écoute, pour cet essai, je vais les modifiers sur un des deux DDext et les quatre commenceront par SAUVE.

---

<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, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762/13 "2016-02-21T12:27:27Z")

</div>

Modif faite mais retour à l’invite sans chiffre 😕

---

<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, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762/14 "2016-02-21T12:27:28Z")

</div>

Après « SAUV », tu as bien un chiffre ?

---

<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, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762/15 "2016-02-21T12:27:28Z")

</div>

Sinon tu peux toujours t’en sortir comme ça. Disons que l’un de tes disque a une partition qui s’appelle toto et l’autre tata :

`if [-f "/dev/disk/by-label/tata"]
then
    ddext=('' '/dev/sdb10' '/dev/sdb8' '/dev/sdb6' '/dev/sdb1')
    systeme_fich=('' 'ext3' 'ext2' 'ext3' 'ext3')
elif [-f "/dev/disk/by-label/toto"]
then
    ddext=('' '/dev/sdb2' '/dev/sdb1' '/dev/sdb5' '/dev/sdb3')
    systeme_fich=('' 'ext4' 'ext4' 'ext4' 'ext4')
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, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762/16 "2016-02-21T12:27:29Z")

</div>

Oui, c’est à cela que j’avais pensé.  
Je tente ça ce soir.

---

<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, 12:27 UTC](https://www.debian-fr.org/t/amelioration-script-sauvegarde/53762/17 "2016-02-21T12:27:31Z")

</div>

[quote=«&nbsp;MisterFreez&nbsp;»]Sinon tu peux toujours t’en sortir comme ça. Disons que l’un de tes disque a une partition qui s’appelle toto et l’autre tata :

`if [-f "/dev/disk/by-label/tata"]
then
    ddext=('' '/dev/sdb10' '/dev/sdb8' '/dev/sdb6' '/dev/sdb1')
    systeme_fich=('' 'ext3' 'ext2' 'ext3' 'ext3')
elif [-f "/dev/disk/by-label/toto"]
then
    ddext=('' '/dev/sdb2' '/dev/sdb1' '/dev/sdb5' '/dev/sdb3')
    systeme_fich=('' 'ext4' 'ext4' 'ext4' 'ext4')
fi`[/quote]  
Ben non ![:013](https://www.debian-fr.org/uploads/default/original/1X/086709e9e4d48f0fa24e42243bbce857fc2be47f.gif "colere")  
[-f «&nbsp;/dev/disk/by-label/tata&nbsp;»]  
J’ai bien une (la 1ère) partition qui a pour label «&nbsp;tata&nbsp;», mais il ne reconnait pas la ligne ‹&nbsp;ddext=…&nbsp;›  
Alors que si je commente tout sauf cette ligne, ça fonctionne 😒

EDIT :  
Ça fonctionne avec ‹&nbsp;-e&nbsp;› à la place de ‹&nbsp;-f&nbsp;› 😒  
Faut croire qu’il ne le considère pas comme un fichier «&nbsp;normal&nbsp;», pas comme le Président 😆

EDIT 2 :  
Tout testé = impec ![:023](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif "OK")  
Fin de l’épisode ![:030](https://www.debian-fr.org/uploads/default/original/1X/65b1b73704eec538091c0e1d04a633b3840a284f.gif "picole")
