Bonjour,

Faisant suite à mon précédent appel à l'aide sur le forum, je souhaiterais à présent pouvoir lancer des commandes en AWK et en déporté via SSH sur une liste de serveurs fournie dans un fichier en entrée.
Le but serait d'avoir une sorte de buletin de santé des serveurs (espace disque et mémoire), sachant qu'il y a en a beaucoup et de renvoyer ce rapport par email :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# ! /bin/bash
#	Espace disque occupés de tous les FS d'une machine (seuils d'alerte et d'erreur en paramètres à changer)
#	MC le 01/10/2019
 
# Variables
fichier="test.txt"		#Fichier en entrée
email="mon.adresse.email.fr" #Destinataire du message
 
seuilerr=90             #Seuil d'erreur a*modifier (poucentage d'occupation du disque)
seuilwarn=70    		#Seuil de warning a*modifier (poucentage d'occupation du disque)
 
 
while IFS= read -r ligne
do
 
	machine="root@"$ligne		
 
	#Ouverture du canal
 
	# Espace disque disponible : gestion des alertes
	dfree=$(ssh -p $machine df -Pm | awk -v err=$seuilerr -v att=$seuilwarn '
					NR>1 {total+=$2; utilise+=$3; dispo+=$4;
							if (+$5>err){printf " => ALERTE  : %15s OCCUPE A : %4d% KO\n", $6, $5 }
							else if (+$5>att){printf " => WARNING : %15s OCCUPE A : %4d% OK\n", $6, $5 }
							else {printf " => NOTE    : %15s OCCUPE A : %4d% OK\n", $6, $5 }}
					END{print " => Taille totale du disque : " total " Mo - Utilisee : " utilise " Mo - dispo : " dispo " Mo"}')
 
	# Mémoire disponible : pour information
	mfree=$(ssh -p $machine vmstat 1 2 -S M | awk 'END {print " => Disponibilité du CPU : "$15"% - Mémoire disponible : "$4" Mo"}')				
 
	message="\n
	###################\n
	Nom de la machine : $machine . \n
	###################\n
	$dfree  \n 
	$mfree  \n"
 
	# Programme principal
	if [ $(echo $dfree | grep -c ALERTE) -gt 0 ]
	then
		echo -e "$message" | /usr/bin/mutt -x -s "Espace disque presque sature sur : " . $machine $email >/dev/null 2>&1
	fi
 
done < "$fichier"
 
 
# Fin
exit 0
Comme la dernière fois, si jamais vous aviez des observations ou des suggestions d'autres indicateurs à faire ressortir en plus de mon code, n'hésitez pas.

Par avance merci.

Marco.