Guest User

Untitled

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