Initial check-in
This commit is contained in:
104
IP_Notifier/ip_notifier.sh
Normal file
104
IP_Notifier/ip_notifier.sh
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||||
|
|
||||||
|
DUCDEV_LOG_FILEPATH=${SCRIPT_DIR}/ducdev.txt
|
||||||
|
IP_LOG_FILEPATH=${SCRIPT_DIR}/ip.txt
|
||||||
|
EMAIL_FILEPATH=${SCRIPT_DIR}/email.txt
|
||||||
|
LOG_FILEPATH=${SCRIPT_DIR}/log.txt
|
||||||
|
ALIVE_LOG_FILEPATH=${SCRIPT_DIR}/am_i_alive.txt
|
||||||
|
|
||||||
|
EMAIL_TO=dkle99@yahoo.com
|
||||||
|
EMAIL_FROM=noreply@noreply.com
|
||||||
|
|
||||||
|
echo -e "`date`\n" > ${LOG_FILEPATH}
|
||||||
|
|
||||||
|
# In order to use the "dig" command, need to install DNS Server package from the Synology Package Center
|
||||||
|
CURRENT_WAN_IP4=$(/var/packages/DNSServer/target/bin/dig @resolver4.opendns.com myip.opendns.com +short)
|
||||||
|
|
||||||
|
while [ "${CURRENT_WAN_IP4}" == "" ]; do
|
||||||
|
echo -e "`date` - Unable to obtain extern IP." >> ${LOG_FILEPATH}
|
||||||
|
sleep 3600
|
||||||
|
CURRENT_WAN_IP4=$(/var/packages/DNSServer/target/bin/dig @resolver4.opendns.com myip.opendns.com +short)
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Current IP: ${CURRENT_WAN_IP4}"
|
||||||
|
|
||||||
|
if [ ! -f "${IP_LOG_FILEPATH}" ]; then
|
||||||
|
echo "${CURRENT_WAN_IP4}" |& tee ${IP_LOG_FILEPATH}
|
||||||
|
SAVED_WAN_IP4=${CURRENT_WAN_IP4}
|
||||||
|
else
|
||||||
|
SAVED_WAN_IP4=$(head -n 1 ${IP_LOG_FILEPATH})
|
||||||
|
echo "Saved IP: ${SAVED_WAN_IP4}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
echo "Last updated on `date` " > ${ALIVE_LOG_FILEPATH}
|
||||||
|
if [[ "${CURRENT_WAN_IP4}" != "${SAVED_WAN_IP4}" ]]; then
|
||||||
|
echo "IP has changed"
|
||||||
|
echo "${CURRENT_WAN_IP4}" |& tee ${IP_LOG_FILEPATH}
|
||||||
|
echo "To: ${EMAIL_TO} " > ${EMAIL_FILEPATH}
|
||||||
|
echo "From: ${EMAIL_FROM} " >> ${EMAIL_FILEPATH}
|
||||||
|
echo "Subject: IP Changed ${CURRENT_WAN_IP4}" >> ${EMAIL_FILEPATH}
|
||||||
|
echo -e "\nThe old IP was ${SAVED_WAN_IP4}\nDate changed: `date`\n" >> ${EMAIL_FILEPATH}
|
||||||
|
email_response=$(ssmtp ${EMAIL_TO} < ${EMAIL_FILEPATH} 2>&1)
|
||||||
|
if [[ "$email_response" == "" ]]; then
|
||||||
|
echo -e "\nEmail Sent Successfully\n"
|
||||||
|
else
|
||||||
|
echo -e "\n\nWARNING -- An error occurred while sending email. The error was: $email_response\n\n"
|
||||||
|
fi
|
||||||
|
SAVED_WAN_IP4=${CURRENT_WAN_IP4}
|
||||||
|
fi
|
||||||
|
|
||||||
|
DUCDEV_IP4=$(/var/packages/DNSServer/target/bin/dig ducdev.com +short)
|
||||||
|
|
||||||
|
while [ "${DUCDEV_IP4}" == "" ]; do
|
||||||
|
echo -e "`date` - Unable to obtain DucDev.com IP." >> ${LOG_FILEPATH}
|
||||||
|
sleep 3600
|
||||||
|
DUCDEV_IP4=$(/var/packages/DNSServer/target/bin/dig ducdev.com +short)
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "DucDev IP: ${DUCDEV_IP4}"
|
||||||
|
|
||||||
|
if [[ "${CURRENT_WAN_IP4}" != "${DUCDEV_IP4}" ]]; then
|
||||||
|
SEND_EMAIL=false
|
||||||
|
if [ -f "${DUCDEV_LOG_FILEPATH}" ]; then
|
||||||
|
SAVED_DATE=$(head -n 1 ${DUCDEV_LOG_FILEPATH})
|
||||||
|
|
||||||
|
if [ "${SAVED_DATE}" != "$(date +"%D")" ]; then
|
||||||
|
SEND_EMAIL=true
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
SEND_EMAIL=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${SEND_EMAIL}" = true ]; then
|
||||||
|
echo "DucDev.com IP does not match home's external IP"
|
||||||
|
echo "To: ${EMAIL_TO} " > ${EMAIL_FILEPATH}
|
||||||
|
echo "From: ${EMAIL_FROM} " >> ${EMAIL_FILEPATH}
|
||||||
|
echo "Subject: IP Changed ${CURRENT_WAN_IP4}" >> ${EMAIL_FILEPATH}
|
||||||
|
echo -e "\nDucDev.com IP is ${DUCDEV_IP4}\nDate changed: `date`\n" >> ${EMAIL_FILEPATH}
|
||||||
|
email_response=$(ssmtp ${EMAIL_TO} < ${EMAIL_FILEPATH} 2>&1)
|
||||||
|
if [[ "$email_response" == "" ]]; then
|
||||||
|
echo -e "\nEmail Sent Successfully\n"
|
||||||
|
else
|
||||||
|
echo -e "\n\nWARNING -- An error occurred while sending email. The error was: $email_response\n\n"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$(date +"%D")" > ${DUCDEV_LOG_FILEPATH}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 3600
|
||||||
|
CURRENT_WAN_IP4=$(/var/packages/DNSServer/target/bin/dig @resolver4.opendns.com myip.opendns.com +short)
|
||||||
|
|
||||||
|
while [ "${CURRENT_WAN_IP4}" == "" ]; do
|
||||||
|
echo -e "`date` - Unable to obtain extern IP." >> ${LOG_FILEPATH}
|
||||||
|
sleep 3600
|
||||||
|
CURRENT_WAN_IP4=$(/var/packages/DNSServer/target/bin/dig @resolver4.opendns.com myip.opendns.com +short)
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user