First Draft and should close this MR
This commit is contained in:
parent
3095c10873
commit
a0ab07359e
|
@ -0,0 +1,6 @@
|
||||||
|
#
|
||||||
|
# Configuration file for monitor_ip.sh
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
SERVICES="nginx"
|
|
@ -0,0 +1,47 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (C) 2021 by LHProjects <copyright@lhpmail.us>
|
||||||
|
#
|
||||||
|
# Permission is granted to use, copy, modify, and/or distribute this work for any purpose with or without fee. This work is offered as-is, with absolutely no warranty whatsoever. The author is not responsible for any damages that result from using this work.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
# Monitors host public IP, when it differs, restart services.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# I wrote this script for services like Nginx, which caches hostnames and fall out of sync when hostname IP changes.
|
||||||
|
# This is problematic when you have edge servers connecting to backends with hostnames that change
|
||||||
|
# ips frequently.
|
||||||
|
|
||||||
|
# Define variables
|
||||||
|
CONF_NAME="monitor_ip.conf"
|
||||||
|
POSSIBLE_PATHS="./ /etc"
|
||||||
|
CACHE_IP_FILE=/tmp/monitor_ip.cache
|
||||||
|
PUBLIC_IP=$(curl --silent https://api.ipify.org/)
|
||||||
|
|
||||||
|
FOUND=false
|
||||||
|
IFS=" "
|
||||||
|
for P in $POSSIBLE_PATHS; do
|
||||||
|
if test -f "$P"/$CONF_NAME; then
|
||||||
|
FOUND=true
|
||||||
|
source "$P"/$CONF_NAME
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $FOUND = false ]; then
|
||||||
|
echo "Configuration file not found in '$POSSIBLE_PATHS'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if we have cache IP
|
||||||
|
if test -f $CACHE_IP_FILE; then
|
||||||
|
CACHE_IP=$(cat $CACHE_IP_FILE)
|
||||||
|
if [ "$PUBLIC_IP" != "$CACHE_IP" ]; then
|
||||||
|
for S in $SERVICES; do
|
||||||
|
systemctl restart "$S"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "$PUBLIC_IP" > $CACHE_IP_FILE
|
||||||
|
fi
|
||||||
|
exit 0
|
Loading…
Reference in New Issue