Subversion Repositories ALCASAR

Rev

Rev 2841 | Rev 2871 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 2841 Rev 2864
Line 1... Line 1...
1
#!/bin/bash
1
#!/bin/bash
2
# $Id: alcasar-watchdog.sh 2841 2020-06-28 21:49:00Z rexy $
2
# $Id: alcasar-watchdog.sh 2864 2020-10-18 09:06:17Z rexy $
3
 
3
 
4
# alcasar-watchdog.sh
4
# alcasar-watchdog.sh
5
# by Rexy
5
# by Rexy
6
# This script is distributed under the Gnu General Public License (GPL)
6
# This script is distributed under the Gnu General Public License (GPL)
7
# - Ce script prévient les usagers de l'indisponibilité de l'accès Internet
7
# - Ce script prévient les usagers de l'indisponibilité de l'accès Internet
Line 15... Line 15...
15
CONF_FILE="/usr/local/etc/alcasar.conf"
15
CONF_FILE="/usr/local/etc/alcasar.conf"
16
EXTIF=`grep ^EXTIF= $CONF_FILE|cut -d"=" -f2`                   # EXTernal InterFace
16
EXTIF=`grep ^EXTIF= $CONF_FILE|cut -d"=" -f2`                   # EXTernal InterFace
17
INTIF=`grep ^INTIF= $CONF_FILE|cut -d"=" -f2`                   # INTernal InterFace
17
INTIF=`grep ^INTIF= $CONF_FILE|cut -d"=" -f2`                   # INTernal InterFace
18
private_ip_mask=`grep ^PRIVATE_IP= $CONF_FILE|cut -d"=" -f2`
18
private_ip_mask=`grep ^PRIVATE_IP= $CONF_FILE|cut -d"=" -f2`
19
private_ip_mask=${private_ip_mask:=192.168.182.1/24}
19
private_ip_mask=${private_ip_mask:=192.168.182.1/24}
20
PRIVATE_IP=`echo "$private_ip_mask" |cut -d"/" -f1`             # @ip du portail (côté LAN)
20
PRIVATE_IP="192.168.182.1"
21
PRIVATE_IP=${PRIVATE_IP:=192.168.182.1}
21
PRIVATE_IP="192.168.182.1"
22
current_users_file="/tmp/current_users.txt"             # file containing active users with their "status.php" tab open
22
current_users_file="/tmp/current_users.txt"             # file containing active users with their "status.php" tab open
23
DIR_WEB="/var/www/html"
23
DIR_WEB="/var/www/html"
24
Index_Page="$DIR_WEB/index.php"
24
Index_Page="$DIR_WEB/index.php"
25
IPTABLES="/sbin/iptables"
25
IPTABLES="/sbin/iptables"
26
TUNIF="tun0"                                                    # listen device for chilli daemon
26
TUNIF="tun0"                                                    # listen device for chilli daemon
Line 38... Line 38...
38
                ;;
38
                ;;
39
        "2")
39
        "2")
40
                logger -t alcasar-watchdog "can't contact the default router"
40
                logger -t alcasar-watchdog "can't contact the default router"
41
                echo "can't contact the default router"
41
                echo "can't contact the default router"
42
                /bin/sed -i "s?diagnostic =.*?diagnostic = \"can't contact the default router\";?g" $Index_Page
42
                /bin/sed -i "s?diagnostic =.*?diagnostic = \"can't contact the default router\";?g" $Index_Page
-
 
43
                ;;
-
 
44
        "3")
-
 
45
                logger -t alcasar-watchdog "can't resolv DNS queries"
-
 
46
                echo "can't resolv DNS queries"
-
 
47
                /bin/sed -i "s?diagnostic =.*?diagnostic = \"can't resolv DNS queries\";?g" $Index_Page
43
                ;;
48
                ;;
44
        esac
49
        esac
45
        net_pb=`grep "network_pb = true;" $Index_Page|wc -l`
50
        net_pb=`grep "network_pb = true;" $Index_Page|wc -l`
46
        if [ $net_pb = "0" ] # user alert (only the first time)
51
        if [ $net_pb = "0" ] # user alert (only the first time)
47
                then
52
                then
Line 78... Line 83...
78
                        if [ $arp_reply -eq "0" ]
83
                        if [ $arp_reply -eq "0" ]
79
                                then
84
                                then
80
                                LAN_DOWN="2"
85
                                LAN_DOWN="2"
81
                        fi
86
                        fi
82
                fi
87
                fi
-
 
88
        fi
-
 
89
        # DNS request testing
-
 
90
        if [ $LAN_DOWN -eq "0" ]
-
 
91
                then
-
 
92
                        dns_reply=`/usr/bin/host -W1 free.fr|grep SERVFAIL|wc -l`
-
 
93
                        if [ $dns_reply -eq "1" ]
-
 
94
                                then
-
 
95
                                LAN_DOWN="3"
-
 
96
                        fi
83
        fi
97
        fi
84
        # if LAN pb detected, users are warned
98
        # if LAN pb detected, users are warned
85
        if [ $LAN_DOWN != "0" ]
99
        if [ $LAN_DOWN != "0" ]
86
                then
100
                then
87
                        lan_down_alert
101
                        lan_down_alert