admin-stuff/test_email.sh

107 lines
3.6 KiB
Bash
Executable File

#!/usr/bin/env bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
datum=`/bin/date +"%d.%m.%Y"`
email_to=$1
email_to=${email_to:="root"}
email_from="$(whoami)@$(hostname --long)"
file=/tmp/mail_ip-up$$
INET_INTERFACE="$(netstat -rn | grep -e"^0.0.0" | awk '{print$8}')"
if [[ -n "$INET_INTERFACE" ]] ; then
EXTERN_IPv4="$(ip addr show $INET_INTERFACE | grep -E "\s+inet\s+" | awk '{print$2}')"
EXTERN_IPv6="$(ip addr show $INET_INTERFACE | grep global | grep -E "\s+inet6\s+" | awk '{print$2}')"
fi
if [[ -n "${EXTERN_IPv4}" ]] ; then
if [[ "${EXTERN_IPv4}" =~ ^10\. ]] \
|| [[ "${EXTERN_IPv4}" =~ ^172\.16\. ]] \
|| [[ "${EXTERN_IPv4}" =~ ^172\.16\. ]] \
|| [[ "${EXTERN_IPv4}" =~ ^172\.16\. ]] \
|| [[ "${EXTERN_IPv4}" =~ ^172\.16\. ]] \
|| [[ "${EXTERN_IPv4}" =~ ^172\.16\. ]] \
|| [[ "${EXTERN_IPv4}" =~ ^172\.16\. ]] \
|| [[ "${EXTERN_IPv4}" =~ ^172\.16\. ]] \
|| [[ "${EXTERN_IPv4}" =~ ^172\.16\. ]] \
|| [[ "${EXTERN_IPv4}" =~ ^172\.16\. ]] \
|| [[ "${EXTERN_IPv4}" =~ ^172\.16\. ]] \
|| [[ "${EXTERN_IPv4}" =~ ^172\.16\. ]] \
|| [[ "${EXTERN_IPv4}" =~ ^172\.16\. ]] \
|| [[ "${EXTERN_IPv4}" =~ ^172\.16\. ]] \
|| [[ "${EXTERN_IPv4}" =~ ^172\.16\. ]] \
|| [[ "${EXTERN_IPv4}" =~ ^172\.16\. ]] \
|| [[ "${EXTERN_IPv4}" =~ ^172\.16\. ]] \
|| [[ "${EXTERN_IPv4}" =~ ^192\.168\. ]] ; then
PUBLIC_IPv4="$(wget -qO- https://meine-ip.oopen.de 2> /dev/null)"
fi
fi
DNS_SERVER="$(cat /etc/resolv.conf | grep -v -e"^#" | grep nameserver | cut -d " " -f2)"
DEFAULT_GW="$(netstat -rn | grep -e"^0.0.0" | awk '{print$2}')"
echo "" > $file
echo " *******************************************************" >> $file
echo " *** This is an autogenerated mail ***" >> $file
echo "" >> $file
echo -e "\tHost.........................: `hostname --long`" >> $file
echo "" >> $file
echo -e "\tSender.......................: $email_from" >> $file
echo "" >> $file
if [[ -n "$INET_INTERFACE" ]] ; then
echo -e "\tInterface extern.............: $INET_INTERFACE" >> $file
echo "" >> $file
declare -i i=1
for ip in $EXTERN_IPv4 ; do
if [ $i -eq 1 ]; then
echo -e "\t Local IPv4 address...........: $ip" >> $file
else
echo -e "\t $ip" >> $file
fi
let i++
done
i=1
for ip in $EXTERN_IPv6 ; do
if [ $i -eq 1 ]; then
echo "" >> $file
echo -e "\t Local IPv6 address...........: $ip" >> $file
else
echo -e "\t $ip" >> $file
fi
let i++
done
fi
echo "" >> $file
if [ "$DEFAULT_GW" ] ; then
echo -e "\t Default Gateway..............: $DEFAULT_GW" >> $file
fi
if [[ -n "${PUBLIC_IPv4}" ]] && [[ "${PUBLIC_IPv4}" != "${EXTERN_IPv4}" ]]; then
echo "" >> $file
echo -e "\t öffentliche IPv4 address.....: ${PUBLIC_IPv4}" >> $file
fi
echo "" >> $file
declare -i i=1
for dns in $DNS_SERVER ; do
echo -e "\tNameserver $i.................: $dns" >> $file
let i++
done
echo "" >> $file
echo -e "\tDate.........................: $(date +"%d.%m.%Y")" >> $file
echo -e "\tTime.........................: $(date +"%H:%M:%S")" >> $file
echo "" >> $file
echo " *** ***" >> $file
echo " *******************************************************" >> $file
echo -e "From:${email_from}\nTo:${email_to}\nSubject:Test on $(hostname --long) at $datum\n\n$(/bin/cat $file)" | /usr/sbin/sendmail -F "$(whoami)" -f $email_from $email_to
rm -f $file
exit 0