Outils pour utilisateurs

Outils du site


stage:valadon:btssio:2021:guery.hugo:scriptproxmox

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

stage/valadon/btssio/2021/guery.hugo/scriptproxmox.txt · Dernière modification: 2022/06/17 11:03 de guery.hugo_educ-valadon-limoges.fr