| 1 | #!/bin/sh
|
|---|
| 2 | #
|
|---|
| 3 | # dubbelipcheck.sh
|
|---|
| 4 | # Scriptje om in de wleiden.conf files van Wireless Leiden
|
|---|
| 5 | # te controleren of er geen dubbele ip addressen bestaan
|
|---|
| 6 | #
|
|---|
| 7 | # Rick van der Zwet (rick@wirelessleiden.nl)
|
|---|
| 8 | genesis_nodes_dir="`dirname $0`/../nodes"
|
|---|
| 9 | allowed_dubbel_ip="172.31.255.1 172.31.255.2 192.168.1.[0-9]\{1,3\} 0.0.0.0"
|
|---|
| 10 | TMPDIR=`mktemp -d -t $(basename $0 .sh).XXXXX`
|
|---|
| 11 |
|
|---|
| 12 | ERRNO=0
|
|---|
| 13 |
|
|---|
| 14 | #zoek alle ip address in de files op
|
|---|
| 15 | init()
|
|---|
| 16 | {
|
|---|
| 17 | files=`find $genesis_nodes_dir/*/wleiden.conf | grep -e "[A-Z]Node\|proxy"`
|
|---|
| 18 |
|
|---|
| 19 | master_ips=`cat $files | grep '^$master_ip' |\
|
|---|
| 20 | sed -e 's/[^0-9]*\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\).*$/\1/'`
|
|---|
| 21 | link_ips=`cat $files | grep ^IP | grep -v '$master_ip' |\
|
|---|
| 22 | sed -e 's/IP=//' -e 's/\/[0-9]*//' -e 's/[[:space:]]*$//'`
|
|---|
| 23 | echo "$master_ips $link_ips" | sort
|
|---|
| 24 | echo "$master_ips $link_ips" | sort > $TMPDIR/all_ips
|
|---|
| 25 | echo "$master_ips $link_ips" | sort -u > $TMPDIR/all_ips_no_double
|
|---|
| 26 | }
|
|---|
| 27 |
|
|---|
| 28 |
|
|---|
| 29 | #check up dubbele ip addressen
|
|---|
| 30 | dubbelIpCheck() {
|
|---|
| 31 | dubbel_ips=`comm -23 $TMPDIR/all_ips $TMPDIR/all_ips_no_double | sort -u`
|
|---|
| 32 | }
|
|---|
| 33 |
|
|---|
| 34 |
|
|---|
| 35 | #verwijder toegestane dubbele ip's
|
|---|
| 36 | verwijderToegestaneIps() {
|
|---|
| 37 | for allowed in $allowed_dubbel_ip; do
|
|---|
| 38 | dubbel_ips=`echo $dubbel_ips | sed s/$allowed//`
|
|---|
| 39 | done
|
|---|
| 40 | }
|
|---|
| 41 |
|
|---|
| 42 |
|
|---|
| 43 | #print resultaten
|
|---|
| 44 | results() {
|
|---|
| 45 | if [ "$dubbel_ips" ]; then
|
|---|
| 46 | for dubbel_ip in $dubbel_ips ; do
|
|---|
| 47 | ERRNO=1
|
|---|
| 48 | echo ""
|
|---|
| 49 | echo "Dubbel ip gevonden: $dubbel_ip"
|
|---|
| 50 | echo "Wordt gebruikt in:"
|
|---|
| 51 | for file in $files ; do
|
|---|
| 52 | grep -v '#' $file | grep "$dubbel_ip" | grep "^IP\|^$master_ip" > /dev/null && echo " -$file"
|
|---|
| 53 | done
|
|---|
| 54 | done
|
|---|
| 55 | else
|
|---|
| 56 | echo "Geen dubbele ip's gevonden"
|
|---|
| 57 | fi
|
|---|
| 58 | echo ""
|
|---|
| 59 | echo "Toegestane dubbele ip's:"
|
|---|
| 60 | for ip in $allowed_dubbel_ip ; do
|
|---|
| 61 | echo " -$ip"
|
|---|
| 62 | done
|
|---|
| 63 | }
|
|---|
| 64 |
|
|---|
| 65 |
|
|---|
| 66 | #verwijder tijdelijke files
|
|---|
| 67 | cleanup() {
|
|---|
| 68 | rm -R $TMPDIR
|
|---|
| 69 | }
|
|---|
| 70 |
|
|---|
| 71 |
|
|---|
| 72 |
|
|---|
| 73 | #hoofdmodule
|
|---|
| 74 | main() {
|
|---|
| 75 | init
|
|---|
| 76 | dubbelIpCheck
|
|---|
| 77 | verwijderToegestaneIps
|
|---|
| 78 | results
|
|---|
| 79 | cleanup
|
|---|
| 80 | }
|
|---|
| 81 |
|
|---|
| 82 | main
|
|---|
| 83 | exit $ERRNO
|
|---|
| 84 |
|
|---|