S'abonner à Techno Geek

Techno Geek‎ > ‎

[Scripting] Fonction d'affichage d'un message en rouge ou en vert d'un résultat d’exécution d'une commande en Bash

publié le 20 avr. 2011 07:13 par Florian GRISONI   [ mis à jour : 30 nov. 2011 07:55 ]

Exemple d'output

Filesystem (inode+occupation) <95%     [KO]
CPU disponible                                   [OK]


affiche_rouge {
    printf "%-45s\033[1;31;40m%s\033[0m\n" "$1" "$2"
}

affiche_vert {
    MESSAGE="$1"
    CODE="$2"
    printf "%-45s\033[1;32;40m%s\033[0m\n" "$1" "$2"
}


# prend 2 parametres
# 1: un message
# 2: le résultat d'execution: 0 si OK, autre => KO
# affiche en vert si OK en rouge si KO
afficher_resultat {
if [ "$2" != "0" ]
then
    affiche_rouge "$1" "[KO]"
else
    affiche_vert "$1" "[OK]"
fi
}



Exemple:

FS_SOCLE=`df | grep "${SOCLE}" | awk 'BEGIN{taux=99;result=0} {name=$7; fs=substr($4,0,length($4)-1); inodes=substr($6,0,length($6)-1);if(fs>taux){result++}; if(inode>taux){result++}} END{print result}'`

afficher_resultat "Filesystem (inode+occupation) <95%" $FS_SOCLE

CPU=`vmstat 3 3 | tail -2 | awk 'BEGIN{taux=5;result=0}  {if($(NF-3)<taux){result++}} END{print result}'`
afficher_resultat "CPU disponible" $CPU


Comments