Ci dessous le script qui permet de lire le contenu d'un rapport de sauvegarde et renvoi à une commande Nagios Centreon les information de métrique pour faire des graphique et donner un état du job
#! /bin/bash
# Plugin return codes
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3#WARNING="3"
#CRITICAL="2.7"print_version() {
echo $SCRIPTNAME version $VERSION
echo ""
echo "Ce plugin est fourni avec ABSOLUTELY NO WARRANTY."
echo "You may redistribute copies of the plugins under the terms of the GNU General Public License v2."
echo "Vous devez redistribuer des copies de ce plugin sous les termes de la GNU General Public License v2."}
# Option processing
print_usage() {
echo "Usage: ./check_job_sauvegarde -J 471500-Bureautique -F RES.csv -w 2.7 -c 3"
echo " $SCRIPTNAME -J NOM-JOB"
echo " $SCRIPTNAME -F FICHIER"
echo " $SCRIPTNAME -w WARNING"
echo " $SCRIPTNAME -c CRITIQUE"
echo " $SCRIPTNAME -h"
echo " $SCRIPTNAME -V"
}print_help() {
print_version
echo ""
print_usage
echo ""
echo "Vérifie la taille d'un job de sauvegarde dans un fichier de log"
echo ""
echo "-J Job à Vérifier"
echo " Nom de la tâche à vérifier"
echo "-F Fichier qui contient les Rapports"
echo " Le fichier qui contient le résultat dus sauvegardes"
echo "-w INTEGER"
echo " Valeur d'alerte pour ce Job (default: 0)"
echo "-c INTEGER"
echo " Valeur Max prévue dans la convention (default: 0)"
echo "-h"
echo " Affiche cette aide"
echo "-V"
echo " Affiche la version et la licence"
echo ""
echo ""
echo "Ce plugin vérifie la taille de la sauvegarde d'un job dans un fichier de rapport de sauvegarde."
echo "Ce plugin produit des données de performance pour des graphes."
echo "Si la valeur de la taille de la sauvegarde et/ou le temps sont nuls alors le scipt retourne un état à ERREUR "
echo "If the warning level and critical levels are both set to 0, then the script returns OK state."
}while getopts J:F:w:c:hV OPT
do
case $OPT in
J) JOB="$OPTARG" ;;
F) FICHIER="$OPTARG" ;;
w) WARNING=$OPTARG ;;
c) CRITICAL=$OPTARG ;;
h)
print_help
exit $STATE_UNKNOWN
;;
V)
print_version
exit $STATE_UNKNOWN
;;
esac
done
#taille=$(cat $1 | grep $2 | awk -F\" '{print $2}')
taille=$(cat $FICHIER | grep $JOB | awk -F\" '{print $2}')duree=$(cat $FICHIER | grep $JOB | awk -F\, '{print $8}')
jour_heure_sauv=$(cat $FICHIER | grep $JOB | awk -F\, '{print $7}')
#agent_sauv=$(cat $FICHIER | grep $JOB | awk -F\, '{print $6}')
#os_agent=$(cat $FICHIER | grep $JOB | awk -F\, '{print $5}')taille3="${taille/,/.}"
if [ -z ${duree} ]; then
STATE=$STATE_CRITICAL
else STATE=$STATE_OK
fi#if [ ${taille} -eq 0 ]; then
# STATE=$STATE_CRITICAL
#else STATE=$STATE_OK
#fiunite='GB'
#taille2="$taille$unite"
#taille3="${taille/,/.}"
DESCRIPTION="Vol derniere sauvegarde : $taille Duree : $duree Le : $jour_heure_sauv | volume=$taille$unite;$WARNING;$CRITICAL;0;0"
echo $DESCRIPTION
exit $STATE
#echo taille=$taille duree=$duree timedate=$jour_heure_sauv Agent=$agent_sauv Os=$os_agent
#echo "| Volume =${taille3}GB 0 0 0 5"
#echo $taille
#echo $taille3