Guest User

Untitled

a guest
Jun 26th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.84 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. #Script d'insertion en base des éléments d'alarme
  4.  
  5. #Usage : sql_alarm.sh IP_IDU new|cleared|changed|event severity type ressource cause probem alarmManagedObjectInstance
  6.  
  7. #NB : alarmManagedObjectInstance argument utile uniquement dans le cas d'un retour SNMP
  8.  
  9. #--------------------
  10. DBNAME=test
  11. ALARMTABLE=ALARM_SNMP
  12. USER=root
  13. PASSWORD=azerty
  14. HOST=localhost
  15. #--------------------
  16.  
  17. check_existing_snmp()
  18. {
  19. #Vérifie l'existence d'une alarme en base
  20. #Si oui, renvoi l'ID, sinon renvoi 0
  21. 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)
  22.  
  23. if [ $count -gt 0 ];then
  24. return $count;
  25. else
  26. return 0;
  27. fi
  28. }
  29.  
  30. check_existing()
  31. {
  32. #Vérifie l'existence d'une alarme en base
  33. #Si oui, envoi l'ID, sinon renvoi 0
  34.  
  35. #Valeur "ressource" : $4
  36.  
  37. 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)
  38.  
  39.  
  40. if [ $count -gt 0 ];then
  41. #Existence en base, parsing nécessaire
  42.  
  43. #Récupération des lignes de types
  44. #IDA
  45. #VALUEA IDB
  46. #VALUEB ...etc
  47. 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-)
  48.  
  49. echo $count;
  50. #
  51.  
  52.  
  53.  
  54.  
  55. return 0;
  56.  
  57. else
  58. return 0;
  59. fi
  60.  
  61. #Parsing des ID existants
  62. #cut -d"$" --output-delimiter="
  63. #" -f1-
  64.  
  65. }
  66.  
  67.  
  68. #Vérification du nombre d'arguments
  69. if [ $# -lt 7 ];then
  70. echo "ERROR: not enought arguments"
  71. exit;
  72. fi
  73.  
  74. #Vérification de l'état de la base (si alarme déjà présente).
  75. if [ $# -eq 7 ];then
  76. #arrivé d'un syslog
  77.  
  78. #check_existing $1 $3 $4 $5 $6 $7
  79. echo "to check"
  80.  
  81. else
  82. #arrivé d'un SNMP
  83.  
  84. #check_existing_snmp $1 $3 $4 $5 $6 $7 $8
  85. echo "to check"
  86.  
  87. fi
  88.  
  89. if [ $? -gt 0 ]; then
  90. #Alarme déjà présente en base
  91. #UPDATE de létat
  92.  
  93. if [ $# -eq 7 ];then
  94.  
  95. #Cas syslog
  96. echo "todo";
  97.  
  98. else
  99. #Cas SNMP
  100. echo "todo";
  101.  
  102. fi
  103.  
  104.  
  105.  
  106. else
  107.  
  108. #Alarme non présente en base
  109. #Insertion en base
  110. if [ $# -eq 7 ];then
  111. #Cas syslog
  112. 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
  113. echo "data inserted"
  114. else
  115. #Cas SNMP
  116. 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
  117. echo "data inserted"
  118. fi
  119.  
  120.  
  121. fi
Add Comment
Please, Sign In to add comment