#Copyright GRASSA Noureddine
#APPROVISIONNEMENT AUTOMATIQUE DES VM 2016-2017 - CAS DE OPENVZ
#!/bin/bash
nom_vm=`cat fich.txt | tr [:space:] '\t' |cut -f1` #on récupère le nom de la VM d'un fichier
vm_lancees=`cat fich.txt | tr [:space:] '\t' |cut -f2` # on récupère la valeur des VM lancées au départ aucune VM n'est lancée
echo $nom_vm echo $vm_lancees while true
do
requete=`who -q |tail -n 1|cut -f2 -d=` #on récupère le Nombre de personnes connectées à un instant T
let temp=$requete/10
let nb_vm_desirees=$temp+1 # nb_vm_desirees = ((requete/10)+1) Tous les 10 utilisateurs on a une VM de plus
echo "Nombre de personnes connectées:$requete"
echo "Nombre de Vm désirées:$nb_vm_desirees"
if [ $nb_vm_desirees -gt $vm_lancees ] then
vzctl start $nom_vm #Lancement d'un VM let vm_lancees=$vm_lancees+1
let nom_vm=$nom_vm+1 echo "vm lancée"
echo "Nombre de VM lancées:$vm_lancees"
elif [ $nb_vm_desirees -lt $vm_lancees ] then
let nom_vm=$nom_vm-1
vzctl stop $nom_vm #Arret d'un VM let vm_lancees=$vm_lancees-1
echo "vm détruit"
echo "Nombre de VM restant:$vm_lancees"
else exit 0 fi
echo $nom_vm > fich.txt # on met les derniers valeurs nom de la VM et Nombre de VM lancées dans un fichier pour préparer le coup d'après
echo $vm_lancees >> fich.txt done
Annexe:
more fich.txt nom_vm
vm_lancées Exemple:
more fich.txt 101
0