Bonjour,
J'essaie via un programme awk de récupérer des informations sur les lvms des serveurs (versions 1 et 2) :
#!/bin/sh
vgdisplay -v 2>/dev/null | awk '
/VG Name/ { nom = $3 }
/Format/ {
type=1
if ( $0 ~ "lvm2")
type=2
vg[nom]=type
}
/PE Size/ {
print "-" $0 "-"
gensub(/^[^0-9]*([0-9]*),[0-9 ]*([KMG])B/, "\1\2","g")
print "+" $0 "+"
vg[nom]=vg[nom] " " $0
}
/PV Name/ { vg[nom]=vg[nom] " " $3 }
END {
for (volume in vg)
print volume, vg[volume]
}
'
Le résultat :
- PE Size 32,00 MB-
+ PE Size 32,00 MB+
- PE Size 32,00 MB-
+ PE Size 32,00 MB+
groupe 2 PE Size 32,00 MB /dev/sda2 /dev/sda7
groupe2 2 PE Size 32,00 MB /dev/sda6
Ce que j'aimerais obtenir, c'est un affichage du type :
groupe 32M /dev/sda2 /dev/sda7
groupe2 32M /dev/sda6
Je dois mal utiliser gensub (ou sub ou gsub, au choix), mais je n'ai pas encore trouvé ce qui ne va pas.
Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"
Poste le Wednesday 23 May 2007 13:00:35