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
#echo $ligne
#	echo $ligne | cut -d',' -f1
# 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 :-)

04/11/2024 V2 du script