Julien Escario
4 years ago
1 changed files with 79 additions and 0 deletions
@ -0,0 +1,79 @@ |
|||
#!/bin/sh |
|||
|
|||
DEBUG() { |
|||
[ "$_DEBUG" = "on" ] && $@ |
|||
} |
|||
|
|||
# Define VPN interface name |
|||
VPNIF="vpnaltinea" |
|||
|
|||
if ! [ -x "$(command -v jq)" ]; then |
|||
echo "jq could not be found, please install it with :" |
|||
echo "apt install jq" |
|||
exit 99; |
|||
fi |
|||
|
|||
# Get public IP addresses |
|||
EXTIP4=`curl -s https://checkipv4.altinea.fr/getIP.php` |
|||
EXTIP6=`curl -s https://checkipv6.altinea.fr/getIP.php` |
|||
|
|||
# Testing if returned IPs are empty and setting |
|||
# a dummy value for later comparison |
|||
if [ -z "$EXTIP4" ]; then |
|||
EXTIP4='dummy' |
|||
fi |
|||
if [ -z "$EXTIP6" ]; then |
|||
EXTIP4='dummy' |
|||
fi |
|||
|
|||
# Check if found IPv4 address is configured on this server |
|||
if [ $(hostname -I |grep -c $EXTIP4) -ne 0 ]; then |
|||
IP4=$EXTIP4 |
|||
else |
|||
# Let see if we can find an ip address on the configured VPN interface |
|||
DEBUG echo "Couldn't find a public IPv4 address on this host" |
|||
DEBUG echo "Let see if we find a $VPNIF wireguard interface" |
|||
VPNIP4=`ip -j addr show dev $VPNIF | jq -r '.[0].addr_info | map(select(.family == "inet"))[0].local'` |
|||
if [ -z "$VPNIP4" ]; then |
|||
DEBUG echo "Can't find an IPv4 address on $VPNIF interface" |
|||
else |
|||
DEBUG echo "Found VPN IPv4 : $VPNIP4. Using it for monitoring purposes" |
|||
IP4=$VPNIP4 |
|||
fi |
|||
fi |
|||
|
|||
# Same routine for IPv6 |
|||
if [ $(hostname -I |grep -c '$EXTIP6') -ne 0 ]; then |
|||
IP6=$EXTIP6 |
|||
else |
|||
DEBUG echo "Couldn't find a public IPv6 address on this host" |
|||
DEBUG echo "Let see if we find an IPv6 on $VPNIF interface" |
|||
VPNIP6=`ip -j addr show dev $VPNIF | jq -r '.[0].addr_info | map(select(.family == "inet6"))[0].local'` |
|||
if [ -z "$VPNIP6" ]; then |
|||
DEBUG echo "Can't find an IPv6 address on $VPNIF interface" |
|||
else |
|||
DEBUG echo "Found VPN IPv6 : $VPNIP6. Using it for monitoring purposes" |
|||
IP6=$VPNIP6 |
|||
fi |
|||
|
|||
fi |
|||
|
|||
# Generate first part on the command |
|||
COMMAND="sendEmail -f noc@altinea.fr -u Nouvelle demande de monitoring -t support@altinea.fr -m Nouvelle IP à monitorer :\n"`hostname -f`"\n" |
|||
|
|||
# Add IPv4 if found |
|||
if [ -z "$IP4" ]; then |
|||
DEBUG echo "Sorry we're unable to find a routable IPv4 address, sorry !" |
|||
else |
|||
COMMAND="$COMMAND IPv4 : $IP4\n" |
|||
fi |
|||
|
|||
# Add IPv6 if found |
|||
if [ -z "$IP6" ]; then |
|||
DEBUG echo "Sorry we're unable to find a routable IPv6 address, sorry !" |
|||
else |
|||
COMMAND="$COMMAND IPv6 : $IP6\n" |
|||
fi |
|||
|
|||
# And run the request by mail |
|||
$COMMAND -o tls=no -o message-charset=UTF-8 -s zpush.altinea.fr |
Write
Preview
Loading…
Cancel
Save
Reference in new issue