bon finalement je vais m'en tenir aux mini scripts que j'ai écris car ils sont plus simple à maintenir et ne font que ce que j'ai besoin:
Code:
#!/bin/sh
#envoi un mail d'alerte si duree d'appel dépasse le seuil fixé
#a mettre en cron toutes les heures
#requete
requete="connect asterisk; SELECT ROUND(sum(duration)/3600) AS calltime FROM cdr WHERE DATE(calldate) >= DATE_SUB(CURDATE(),INTERVAL 1 DAY) GROUP BY substring(calldate,1,10);"
#execution de la requete
resreq=`mysql -u root -ppass -e "$requete" `
#on récupere juste le montant
resreq=`echo $resreq | awk '{print $NF}'`
#si supérieur au seuil en heure pleine
if [ $resreq -gt 22 ]
then #envoi email
titre="ALERTE CONSO $resreq HEURES AUJOURD HUI !"
echo "ALERTE CONSO $resreq HEURES AUJOURD HUI !" |/usr/bin/mail -s "$titre" utilisateur@domaine.fr -b copie@domaine.com
fi
et pour le reporting journalier:
Code:
#!/bin/sh
#envoi un mail avec les informations sur le mois en cours
#a mettre en cron une fois par jour en fin de journée
#requete
requete="connect asterisk; SELECT substring(calldate,1,10) AS day, ROUND(sum(duration)/3600,2) AS calltime, count(*) as nbcall FROM cdr WHERE MONTH(calldate) = MONTH(NOW()) GROUP BY substring(calldate,1,10);"
#execution requete et mise des résultats dans un fichier
mysql -u root -ppass -e "$requete">./resreq.txt
#on défini le titre du mail pour avoir l'information sur le jour en cours
titre=`tail --line=1 ./resreq.txt|tr '\t' '__'`
#envoi du mail
cat ./resreq.txt |/usr/bin/mail -s "$titre" vous@domaine.fr -b copie@domaine.fr