Amélioration script sauvegarde

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 :unamused: :unamused: :unamused: , 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 ?

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é :

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

par

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.

voila : admin-linux.fr/?p=218

Merci mon Doudou, y’a vraiment tout pour m’occuper demain :023
:006

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 ...

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

‘SAUV1’
ou
’LABEL=SAUV1’
:question:

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

[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

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 :

[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

‘SAUV1’
ou
’LABEL=SAUV1’
:question:

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

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

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.

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

Ç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 ?

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

Modif faite mais retour à l’invite sans chiffre :confused:

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

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

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

[quote=“MisterFreez”]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
[ -f “/dev/disk/by-label/tata” ]
J’ai bien une (la 1ère) partition qui a pour label “tata”, mais il ne reconnait pas la ligne ‘ddext=…’
Alors que si je commente tout sauf cette ligne, ça fonctionne :unamused:

EDIT :
Ça fonctionne avec ‘-e’ à la place de ‘-f’ :unamused:
Faut croire qu’il ne le considère pas comme un fichier “normal”, pas comme le Président :laughing:

EDIT 2 :
Tout testé = impec :023
Fin de l’épisode :030