Guest User

Untitled

a guest
Jun 14th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.78 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
  12. USER=root
  13. PASSWORD=azerty
  14. HOST=localhost
  15. #--------------------
  16.  
  17. check_existing_snmp()
  18. {
  19. return 0;
  20. #Vérifie l'existence d'une alarme en base
  21. #Si oui, renvoi l'ID, sinon renvoi 0
  22. 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)
  23.  
  24. if [ $count -gt 0 ];then
  25. return $count;
  26. else
  27. return 0;
  28. fi
  29. }
  30.  
  31. check_existing()
  32. {
  33.  
  34.  
  35.  
  36.  
  37. return 0;
  38. }
  39.  
  40.  
  41. #Vérification du nombre d'arguments
  42. if [ $# -lt 8 ];then
  43. echo "ERROR: not enought arguments"
  44. exit;
  45. fi
  46.  
  47. #Vérification de l'état de la base (si alarme déjà présente).
  48. if [ $# -eq 7 ];then
  49. #arrivé d'un syslog
  50. check_existing $1 $3 $4 $5 $6 $7
  51. else
  52. #arrivé d'un SNMP
  53. check_existing_snmp $1 $3 $4 $5 $6 $7 $8
  54. fi
  55.  
  56. if [ $? -gt 0 ]; then
  57. #Alarme déjà présente en base
  58. #UPDATE de létat
  59.  
  60. if [ $# -eq 7 ];then
  61.  
  62. #Cas syslog
  63.  
  64. echo "lol";
  65.  
  66.  
  67. else
  68. #Cas SNMP
  69. if [ "$2" = "new" ];then
  70. echo "use $DBNAME; UPDATE $ALARMTABLE SET SEVERITY=lower('$3'), DATE_NEW=NOW() WHERE IP='$1' AND TYPE='$4' AND RESSOURCE LIKE '%$5%$8%' AND CAUSE='$6' AND PROBLEM='$7' ;" | mysql --user=$USER --password=$PASSWORD --host=$HOST
  71. echo "data updated"
  72. fi
  73. if [ "$2" = "changed" ];then
  74. echo "use $DBNAME; UPDATE $ALARMTABLE SET SEVERITY=lower('$3'), DATE_CHANGED=NOW() WHERE IP='$1' AND TYPE='$4' AND RESSOURCE LIKE '%$5%$8%' AND CAUSE='$6' AND PROBLEM='$7' ;" | mysql --user=$USER --password=$PASSWORD --host=$HOST
  75. echo "data updated"
  76. fi
  77. if [ "$2" = "cleared" ];then
  78. echo "use $DBNAME; UPDATE $ALARMTABLE SET SEVERITY=lower('$3'), DATE_CLEARED=NOW() WHERE IP='$1' AND TYPE='$4' AND RESSOURCE LIKE '%$5%$8%' AND CAUSE='$6' AND PROBLEM='$7' ;" | mysql --user=$USER --password=$PASSWORD --host=$HOST
  79. echo "data updated"
  80. fi
  81. fi
  82.  
  83.  
  84.  
  85.  
  86. else
  87.  
  88.  
  89. #Alarme non présente en base
  90. #Insertion en base
  91. if [ $# -eq 7 ];then
  92. #Cas syslog
  93. if [ "$2" = "new" ];then
  94. echo "use $DBNAME; INSERT INTO $ALARMTABLE VALUES ('','$1',NOW(),NULL,NULL,lower('$3'),'$4','$5','$6','$7','');" | mysql --user=$USER --password=$PASSWORD --host=$HOST
  95. echo "data inserted"
  96. fi
  97.  
  98. if [ "$2" = "changed" ];then
  99. echo "use $DBNAME; INSERT INTO $ALARMTABLE VALUES ('','$1',NULL,NOW(),NULL,lower('$3'),'$4','$5','$6','$7','');" | mysql --user=$USER --password=$PASSWORD --host=$HOST
  100. echo "data inserted"
  101. fi
  102.  
  103. if [ "$2" = "cleared" ];then
  104. echo "use $DBNAME; INSERT INTO $ALARMTABLE VALUES ('','$1',NULL,NULL,NOW(),lower('$3'),'$4','$5','$6','$7','');" | mysql --user=$USER --password=$PASSWORD --host=$HOST
  105. echo "data inserted"
  106. fi
  107. else
  108. #Cas SNMP
  109. if [ "$2" = "new" ];then
  110. echo "use $DBNAME; INSERT INTO $ALARMTABLE VALUES ('','$1',NOW(),NULL,NULL,lower('$3'),'$4','$5 $8','$6','$7','');" | mysql --user=$USER --password=$PASSWORD --host=$HOST
  111. echo "data inserted"
  112. fi
  113.  
  114. if [ "$2" = "changed" ];then
  115. echo "use $DBNAME; INSERT INTO $ALARMTABLE VALUES ('','$1',NULL,NOW(),NULL,lower('$3'),'$4','$5 $8','$6','$7','');" | mysql --user=$USER --password=$PASSWORD --host=$HOST
  116. echo "data inserted"
  117. fi
  118.  
  119. if [ "$2" = "cleared" ];then
  120. echo "use $DBNAME; INSERT INTO $ALARMTABLE VALUES ('','$1',NULL,NULL,NOW(),lower('$3'),'$4','$5 $8','$6','$7','');" | mysql --user=$USER --password=$PASSWORD --host=$HOST
  121. echo "data inserted"
  122. fi
  123. fi
  124.  
  125.  
  126. fi
Add Comment
Please, Sign In to add comment