Advertisement
ss_

zabbix to noc

ss_
Oct 6th, 2011
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.80 KB | None | 0 0
  1. #!/bin/bash
  2. rm *.toNOC
  3. adr='10.21.'
  4. login='root'
  5. pass='admin'
  6. logout='quit'
  7. administrative_domain_id='5'  #1 default 5=DSLAM 3=Сisco-switch
  8. activator_id='1' #1 default
  9. profile_name='Huawei.VRP1' #Siemens.HIX5630 Huawei.VRP1 Huawei.VRP
  10. snmp_ro='public' #
  11. snmp_rw=''
  12. trap_community='public'
  13. tags='adsl,ma5605,' #tag,tag1,tag2,
  14. description='Huawei MA5605 add from zabbix'
  15. N=0
  16. #echo "select ip from hosts where status = 0" \
  17. #| mysql -u zabbix -ppass -h127.0.01 zabbix \
  18. #| sort -u | grep -v 127.0.0.1 \
  19. #| grep -v ip | grep  $adr[12][] \
  20. #> zabbix.hosts
  21.  
  22. echo "SELECT ip FROM hosts WHERE status = 0 AND hostid IN (SELECT hostid FROM hosts_groups WHERE groupid = 10)" \
  23. | mysql -u zabbix -ppass -h127.0.01 zabbix \
  24. | sort -u | grep -v 127.0.0.1 \
  25. | grep -v ip |grep $adr\
  26. > zabbix.hosts
  27.  
  28. echo "select address from sa_managedobject" | psql noc \
  29. |grep -v [a-zA-Z] | grep -v '-' | sort -u | awk {'print $1'} | grep $adr\
  30. > noc.hosts
  31.  
  32. diff ./zabbix.hosts ./noc.hosts | grep '<' | awk {'print $2'} > zabbixtonoc.diff
  33. FILE=`cat ./zabbixtonoc.diff`;
  34.  
  35. for I in $FILE
  36. do
  37.  
  38. MOD=`(sleep 4; echo $login; sleep 1; echo $pass;sleep 5; echo $logout) | telnet $I | grep ">"\
  39. | awk -F">" {'print $1'} | sed -e "s/[<>]//g" | grep -E -v "^$"`
  40. echo "hostname=" $MOD
  41. echo "IP=" $I
  42. #echo "user"=$login "password=" $pass  "snmp_ro="$snmp_ro "snmp_rw=" $snmp_rw  "trap_community=" $trap_community
  43. #echo "administrative_domain_id=" $administrative_domain_id "activator_id="$activator_id  "profile_name="$profile_name
  44. #echo "description="$description "tags=" $tags
  45.  
  46. if [ "$MOD" != "" ]; then
  47.     ###
  48.     #тут должен быть скрипт вбивания все в БД
  49.  
  50. ##режем все переводы строк
  51. ## echo $sql | perl -i~ -pne "s/\n//g" | pgsql -pPassword -uUsername database
  52.  
  53.     psql -d noc -U noc -c 'INSERT INTO sa_managedobject ( name, is_managed, administrative_domain_id, activator_id, profile_name, scheme, address, "user", password, super_password, remote_path, trap_source_ip, trap_community, is_configuration_managed, repo_path, snmp_ro, snmp_rw, description, tags ) '" \
  54.     VALUES ( '$MOD', true, '$administrative_domain_id', '$activator_id', '$profile_name', 0, '$I', '$login', '$pass', '', '', '$I', '$trap_community', true, '$MOD', '$snmp_ro', '$snmp_rw', '$description', '$tags' )"
  55.     echo "add successful"
  56.     echo $MOD
  57.     ID=`psql -d noc -U noc -c "SELECT id FROM sa_managedobject WHERE name='$MOD'" |awk '{if (NR==3) print}'`
  58.     psql -d noc -U noc -c "INSERT INTO cm_config ( repo_path, push_every, pull_every, managed_object_id ) \
  59.     VALUES ( '$MOD', 86400, 86400, '$ID' )"
  60.     echo $ID "conf add successful"$
  61.     N=`expr $N + 1`
  62. else
  63.     echo "нет Hostname пропускаем"
  64. fi
  65.  
  66. done
  67. echo "добавленно="$N " узлов"
  68. #Delete tmp files
  69. rm -f ./importtmp.csv
  70. rm -f ./*.hosts
  71. rm -f ./*.diff
  72.  
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement