#!/bin/bash #Variablen while [ true ] ; do supernode_off () { $BATCTL gw off /usr/sbin/service bird6 stop /usr/sbin/service bird stop /usr/sbin/service tunneldigger stop /usr/sbin/service radvd stop echo "Active Supernode is running" } supernode_on () { $BATCTL gw server 100Mbit/100Mbit /usr/sbin/service bird6 start /usr/sbin/service bird start /usr/sbin/service tunneldigger start /usr/sbin/service radvd start } supernode_fail () { $BATCTL gw off /usr/sbin/service bird6 restart /usr/sbin/service bird restart /usr/sbin/service tunneldigger restart /usr/sbin/service radvd restart echo "Supernode nicht pingbar" } iam=$(/bin/hostname) BATCTL=/usr/local/sbin/batctl SN1=troisdorf5 SN2=troisdorf6 if [ $iam == troisdorf5 ] then my_SN_IP=185.66.193.105 other_SN_IP=185.66.193.106 else my_SN_IP=185.66.193.106 other_SN_IP=185.66.193.105 fi #Auf 1 setzen um Lastverteilung 1/2 Monat einzuschalten loadbalance=1 #Default Supernode if loadbalance=0 active_SN=$SN2 day=$(date +%d) if [ $loadbalance == 1 ] then if [ $day -gt 15 ] then active_SN=$SN1 fi fi #Check other Supernode if [ $iam != $active_SN ] then ping -q -c5 $other_SN_IP -I eth0 > /dev/null if [ $? -eq 0 ] then supernode_off else supernode_on echo "First Supernode not running!" curl -X POST --data-urlencode 'payload={"text": "Aktiver Supernode nicht pingbar. {{ sn_hostname }} eingeschaltet", "channel": "#technik", "username": "{{ sn_hostname }}", "icon_emoji": ":warning:"}' https://hooks.slack.com/services/{{ slack_token }} sleep 900 fi else # Check this Supernode ping -q -c5 $my_SN_IP -I eth0 > /dev/null if [ $? -eq 0 ] then echo "Supernode ok" supernode_on else echo "Supernode nicht pingbar" supernode_fail curl -X POST --data-urlencode 'payload={"text": "{{ sn_hostname }} nicht pingbar. services auf {{ sn_hostname }} neu gestartet", "channel": "#technik", "username": "{{ sn_hostname }}", "icon_emoji": ":warning:"}' https://hooks.slack.com/services/{{ slack_token }} fi fi sleep 60 done