Script de récupération des informations
Dans ce script on utilisera l'outil curl qui nous permettra de récupérer un jeton d'authentification, jq qui permettra de rendre plus facilement lisibles les informations récupérés et bc qui lui permettra d'avoir des nombres à virgules utiles lors de la conversion des valeurs.
- script.sh
!/bin/bash read -p "Entrez l'hyperviseur (exemple siohyp2) : " hyp read -p "Entrez votre identifiant : " id read -s -p "Entrez votre mot de passe : " passwd jeton=$(curl -k -d "username=$id@Valadon&password=$passwd" https://10.187.36.12:8006/api2/json/access/ticket | jq --raw-output '.data.ticket') curl https://10.187.36.12:8006/api2/json/nodes/$hyp/lxc -k -b "PVEAuthCookie=$jeton" > donnees nb=0 Totrunning=0 Totstopped=0 Totmemmio=0 Totdiskgio=0 for element in $(echo $(<donnees) | jq --raw-output '.data[].name') do echo "valeur de nb : $nb" name=".data[$nb].name" echo "nom : $(echo $(<donnees) | jq --raw-output $name)" vmid=".data[$nb].vmid" echo "VMID : $(echo $(<donnees) | jq --raw-output $vmid)" status=".data[$nb].status" echo "statut de la VM : $(echo $(<donnees) | jq --raw-output $status)" uptime=".data[$nb].uptime" echo "uptime de la VM : $(echo $(<donnees) | jq --raw-output $uptime)" cpus=".data[$nb].cpus" echo "nombre total de cpu(s) : $(echo $(<donnees) | jq --raw-output $cpus)" cpu=".data[$nb].cpu" echo "utilisation du cpu : $(echo $(<donnees) | jq --raw-output $cpu)%" mem=".data[$nb].mem" memoctet=$(echo "$(echo $(<donnees) | jq --raw-output $mem)") memmio=$(echo "scale=2;$memoctet/1024/1024" | bc) echo "utilsation de la memoire : $memmio Mio" maxmem=".data[$nb].maxmem" maxmemoctet=$(echo "$(echo $(<donnees) | jq --raw-output $maxmem)") maxmemmio=$(echo "scale=2;$maxmemoctet/1024/1024" | bc) echo "memoire total de la VM : $maxmemmio Mio" disk=".data[$nb].disk" diskoctet=$(echo "$(echo $(<donnees) | jq --raw-output $disk)") diskgio=$(echo "scale=2;$diskoctet/1024/1024/1024" | bc) echo "stockage utilise par le disque dur : $diskgio Gio" maxdisk=".data[$nb].maxdisk" maxdiskoctet=$(echo "$(echo $(<donnees) | jq --raw-output $maxdisk)") maxdiskgio=$(echo "scale=2;$maxdiskoctet/1024/1024/1024" | bc) echo "capacite totale du disque dur : $maxdiskgio Gio" echo "" ((nb=nb+1)) Totmemmio=`echo "$Totmemmio+$memmio" | bc ` Totdiskgio=`echo "$Totdiskgio+$diskgio" | bc ` if [ $(echo $(<donnees) | jq --raw-output $status) = "running" ] then ((Totrunning=Totrunning+1)) else ((Totstopped=Totstopped+1)) fi done echo "-----------" echo "" echo "Synthese :" echo "Memoire totale utilisee : $Totmemmio Mio , Stockage disque totale utilisee : $Totdiskgio Gio " echo "Nombre de machines totales : $nb, Machine allumee : $Totrunning, Machine eteinte : $Totstopped"
Exemple de sortie
On peut donc voir dans cet exemple que au début de l'exécution du programme des paramètres sont demandés afin de rendre le programme accessible à un maximum de personnes. On peut voir ensuite qu'on a le listage de toutes les VMs avec les infos que l'on souhaitent et avec des valeurs après conversion. Pour finir on a une “synthèse” de l'exécution qui liste les infos importantes comme l'usage totales de la mémoires, le nombre de VMs démarré, etc.
Entrez l'hyperviseur (exemple siohyp2) : siohyp2
Entrez votre identifiant : sio2018
Entrez votre mot de passe : % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1036 100 995 100 41 14420 594 --:--:-- --:--:-- --:--:-- 15014
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 938 100 938 0 0 2191 0 --:--:-- --:--:-- --:--:-- 2186
valeur de nb : 0
nom : CTDebianhyp2
VMID : 122
statut de la VM : running
uptime de la VM : 1191630
nombre total de cpu(s) : 1
utilisation du cpu : 0%
utilsation de la memoire : 27.70 Mio
memoire total de la VM : 512.00 Mio
stockage utilise par le disque dur : .62 Gio
capacite totale du disque dur : 7.81 Gio
valeur de nb : 1
nom : guerydebian
VMID : 119
statut de la VM : running
uptime de la VM : 591550
nombre total de cpu(s) : 1
utilisation du cpu : 0.00715672946153439%
utilsation de la memoire : 99.02 Mio
memoire total de la VM : 512.00 Mio
stockage utilise par le disque dur : 1.08 Gio
capacite totale du disque dur : 7.81 Gio
valeur de nb : 2
nom : DebianCouderchon
VMID : 260
statut de la VM : stopped
uptime de la VM : 0
nombre total de cpu(s) : 1
utilisation du cpu : 0%
utilsation de la memoire : 0 Mio
memoire total de la VM : 512.00 Mio
stockage utilise par le disque dur : 0 Gio
capacite totale du disque dur : 8.00 Gio
-----------
Synthese :
Memoire totale utilisee : 126.72 Mio , Stockage disque totale utilisee : 1.70 Gio
Nombre de machines totales : 3, Machine allumee : 2, Machine eteinte : 1