Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- #Script d'insertion en base des éléments d'alarme
- #Usage : sql_alarm.sh IP_IDU new|cleared|changed|event severity type ressource cause probem alarmManagedObjectInstance
- #NB : alarmManagedObjectInstance argument utile uniquement dans le cas d'un retour SNMP
- #--------------------
- DBNAME=test
- ALARMTABLE=ALARM_SNMP
- USER=root
- PASSWORD=azerty
- HOST=localhost
- #--------------------
- check_existing_snmp()
- {
- #Vérifie l'existence d'une alarme en base
- #Si oui, renvoi l'ID, sinon renvoi 0
- count=$(echo "use $DBNAME; SELECT COUNT(*) AS ' ' FROM $ALARMTABLE WHERE IP='$1' AND (NOT SEVERITY=lower('$2')) AND (NOT SEVERITY='cleared') AND TYPE='$3' AND RESSOURCE LIKE '%$4%$7%' AND CAUSE='$5' AND PROBLEM='$6';" | mysql --user=$USER --password=$PASSWORD --host=$HOST)
- if [ $count -gt 0 ];then
- return $count;
- else
- return 0;
- fi
- }
- check_existing()
- {
- #Vérifie l'existence d'une alarme en base
- #Si oui, envoi l'ID, sinon renvoi 0
- #Valeur "ressource" : $4
- count=$(echo "use $DBNAME; SELECT COUNT(*) AS '' FROM $ALARMTABLE WHERE (NOT SEVERITY='cleared') AND IP='$1' AND TYPE='$3' AND CAUSE='$5' AND PROBLEM='$6';" | mysql --user=$USER --password=$PASSWORD --host=$HOST)
- if [ $count -gt 0 ];then
- #Existence en base, parsing nécessaire
- #Récupération des lignes de types
- #IDA
- #VALUEA IDB
- #VALUEB ...etc
- count=$(echo "use $DBNAME; SELECT CONCAT_WS('$',ID, RESSOURCE) AS '' FROM $ALARMTABLE WHERE 1=1 ;" | mysql --user=$USER --password=$PASSWORD --host=localhost | cut -d"$" --output-delimiter="\n\r" -f1-)
- echo $count;
- #
- return 0;
- else
- return 0;
- fi
- #Parsing des ID existants
- #cut -d"$" --output-delimiter="
- #" -f1-
- }
- #Vérification du nombre d'arguments
- if [ $# -lt 7 ];then
- echo "ERROR: not enought arguments"
- exit;
- fi
- #Vérification de l'état de la base (si alarme déjà présente).
- if [ $# -eq 7 ];then
- #arrivé d'un syslog
- #check_existing $1 $3 $4 $5 $6 $7
- echo "to check"
- else
- #arrivé d'un SNMP
- #check_existing_snmp $1 $3 $4 $5 $6 $7 $8
- echo "to check"
- fi
- if [ $? -gt 0 ]; then
- #Alarme déjà présente en base
- #UPDATE de létat
- if [ $# -eq 7 ];then
- #Cas syslog
- echo "todo";
- else
- #Cas SNMP
- echo "todo";
- fi
- else
- #Alarme non présente en base
- #Insertion en base
- if [ $# -eq 7 ];then
- #Cas syslog
- echo "use $DBNAME; INSERT INTO $ALARMTABLE VALUES ('',TRIM('$1)',NOW(),TRIM(lower('$3')),TRIM('$4'),TRIM('$5'),TRIM('$6'),TRIM('$7'),'','SYSLOG');" | mysql --user=$USER --password=$PASSWORD --host=$HOST
- echo "data inserted"
- else
- #Cas SNMP
- echo "use $DBNAME; INSERT INTO $ALARMTABLE VALUES ('',TRIM('$1'),NOW(),TRIM(lower('$3')),TRIM('$4'),TRIM('$5/$8'),TRIM('$6'),TRIM('$7'),'','SNMP');" | mysql --user=$USER --password=$PASSWORD --host=$HOST
- echo "data inserted"
- fi
- fi
Add Comment
Please, Sign In to add comment