Vous utilisez la solution de sauvegarde Oxibox pour vos postes et vous avez besoin d’avoir des informations plus précises que celle de l’interface oxiadmin ?

Vous pouvez utiliser les données des mails de rapports unifiés avec le script suivant. Tout est commenté dans le script qui est prévu pour fonctionner sous Linux.


 

#!/bin/sh

 

#Pour générer le fichier eml, il faut l’ouvrir dans le navigateur dans une nouvelle fenêtre puis le sauvegarder avec un nom sans espace.

 

# Si pas d'arguments alors on donne l'aide
if test $# -eq 0; then
    echo "Aide"
    echo "Arguments : à mettre"
    echo "1 - Nom du fichier eml"
    echo "2 - Nom du fichier Temporaire"
    echo "3 - datetimestamp au format aaaammjj"
    echo "4 - Nom du fichier destination Définitif"
exit 1
fi

 

#On prend le fichier en argument 1 puis
#On supprime de Received à Comptes clients : sed '/Received/,/Comptes clients : /d'
#On supprime de Ceci est un email automatique jusqu’à la fin : sed '/Ceci est un email automatique,/,$ d'
#On remplace retour à la ligne et tiret par virgule : sed -z 's/.\n    - /,/g'
#On remplace machine(s) par virgule : sed 's/machine(s)//g'
#On remplace en succès par virgule : sed 's/ en succès/,/g'
#On remplace les espaces par virgule : sed 's/ /,/g'
#On remplace les anti slash par virgule : sed 's/\//,/g'
#On supprime les lignes vides : sed -e '/^$/d'
#On ajoute en début de ligne l’argument $3 pour différencier les analyses
#On sauvegarde dans le fichier passé en argument $2

 

sed '/Received/,/Comptes clients : /d' $1 | sed '/Ceci est un email automatique,/,$ d' | sed -z 's/.\n    - /,/g' | sed 's/machine(s)//g' | sed 's/ en succès/,/g' | sed 's/ /,/g'| sed 's/\//,/g' | sed -e '/^[[:space:]]*$/d' | sed 's/^/'$3',/'  > $2

 

#On supprime le fichier en argument 4
if [ -d "$4" ];then
    echo "Le Fichier existe ! Vidage !";
    rm $4
else
    echo "Le Fichier n'existe pas ! Création !";
    touch $4
fi

 

echo Date,CT,NB_PC_OK,NB_PC_TOT,NOM_AGENT,NB_JOB_OK,NB_JOB_TOT,Notes > $4

 

#Maintenant on va lire le fichier de destination pour trouver les CT qui ont plus de 1 serveur
while read ligne;
do
# On récupère les éventuels serveurs
CHAMP1=`echo $ligne | cut -d',' -f1,2,3,4`
SRV1=`echo $ligne | cut -d',' -f7,8,9,10,11`
SRV2=`echo $ligne | cut -d',' -f12,13,14,15,16`
SRV3=`echo $ligne | cut -d',' -f17,18,19,20,21`
SRV4=`echo $ligne | cut -d',' -f22,23,24,25,26`
SRV5=`echo $ligne | cut -d',' -f27,28,29,30,31`
NBPC=`echo $ligne | cut -d',' -f4`
#Si il y a un serveur1 on écrit les données de la CT et du serveur1
if [ $NBPC -gt 0 ]; then
    echo $CHAMP1,$SRV1 >> $4
fi
#Si il y a un serveur2 on écrit les données de la CT et du serveur2
if [ $NBPC -gt 1 ]; then
    echo $CHAMP1,$SRV2 >> $4
fi
#Si il y a un serveur3 on écrit les données de la CT et du serveur3
if [ $NBPC -gt 2 ]; then
    echo $CHAMP1,$SRV3 >> $4
fi
#Si il y a un serveur4 on écrit les données de la CT et du serveur4
if [ $NBPC -gt 3 ]; then
    echo $CHAMP1,$SRV4 >> $4
fi
#Si il y a un serveur5 on écrit les données de la CT et du serveur5
if [ $NBPC -gt 4 ]; then
    echo $CHAMP1,$SRV5 >> $4
fi

 

done < $2

 

exit 0


Ps : Oui je sais le code n’est pas optimal mais il fonctionne :-)