check-connectivity.sh: fix some minor bugs.
This commit is contained in:
parent
67b6587917
commit
b27b0aa937
@ -114,9 +114,14 @@ echo_failed(){
|
||||
echo -e "\033[75G[ \033[1;31mfailed\033[m ]"
|
||||
fi
|
||||
}
|
||||
echo_warn() {
|
||||
if $terminal ; then
|
||||
echo -e "\033[75G[ \033[33m\033[1mwarn\033[m ]"
|
||||
fi
|
||||
}
|
||||
echo_skipped() {
|
||||
if $terminal ; then
|
||||
echo -e "\033[75G[ \033[33m\033[1mskipped\033[m ]"
|
||||
echo -e "\033[75G[ \033[37m\033[1mskipped\033[m ]"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -155,6 +160,19 @@ online() {
|
||||
|
||||
}
|
||||
|
||||
reboot_system() {
|
||||
|
||||
content_type='Content-Type: text/plain;\n charset="utf-8"'
|
||||
datum="$(date +"%d.%m.%Y")"
|
||||
from_address="root@$(hostname --long)"
|
||||
|
||||
echo -e "To:${ADMIN_EMAIL}\n${content_type}\nSubject:[Connectivity Error] $datum - Reboot System\n$*" | /usr/sbin/sendmail -F "Connectivity Check" -f $from_address $ADMIN_EMAIL
|
||||
|
||||
sleep 10
|
||||
/sbin/reboot -f
|
||||
|
||||
}
|
||||
|
||||
# ----------
|
||||
# - Jobhandling
|
||||
# ----------
|
||||
@ -212,6 +230,7 @@ fi
|
||||
# -
|
||||
DEFAULT_IPV6_PRESENT=true
|
||||
DEFAULT_CHECK_HOSTS="www.oopen.de www.google.de www.heise.de www.debian.org"
|
||||
DEFAULT_ADMIN_EMAIL="argus@oopen.de"
|
||||
|
||||
echononl "Load Configurations from file '$(basename "$conf_file")'."
|
||||
if [[ -f "$conf_file" ]]; then
|
||||
@ -219,12 +238,24 @@ if [[ -f "$conf_file" ]]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_skipped
|
||||
warn "No configuration file found. Loading script default values.."
|
||||
msg="No configuration file found. Script default values where loaded.."
|
||||
if $terminal ; then
|
||||
echo ""
|
||||
echo -e " [ \033[33m\033[1mWarn\033[m ] $msg"
|
||||
echo ""
|
||||
fi
|
||||
#if [[ -z "$msg_warn" ]]; then
|
||||
# msg_warn="$msg"
|
||||
#else
|
||||
# msg_warn="$msg_warn
|
||||
# $msg"
|
||||
#fi
|
||||
fi
|
||||
|
||||
[[ -z "$IPV6_PRESENT" ]] && IPV6_PRESENT="$DEFAULT_IPV6_PRESENT"
|
||||
[[ -z "$DNS_CHECK_HOSTS" ]] && DNS_CHECK_HOSTS="$DEFAULT_CHECK_HOSTS"
|
||||
[[ -z "$HTTPS_CHECK_HOSTS" ]] && HTTPS_CHECK_HOSTS="$DEFAULT_CHECK_HOSTS"
|
||||
[[ -z "$ADMIN_EMAIL" ]] && ADMIN_EMAIL="$DEFAULT_ADMIN_EMAIL"
|
||||
|
||||
|
||||
blank_line
|
||||
@ -240,7 +271,13 @@ else
|
||||
fi
|
||||
|
||||
if $LINK_UP ; then
|
||||
info 'Machine has at least one interface with physical link is up.'
|
||||
msg="Machine has at least one interface with physical link is up."
|
||||
if [[ -z "$msg_info" ]]; then
|
||||
msg_info="$msg"
|
||||
else
|
||||
msg_info="$msg_info
|
||||
$msg"
|
||||
fi
|
||||
else
|
||||
error 'Machine is OFFLINE'
|
||||
if [[ -f "$RESTART_CHECK_FILE" ]] ; then
|
||||
@ -253,7 +290,7 @@ else
|
||||
if [[ $_delta -gt 3900 ]] ; then
|
||||
touch "$RESTART_CHECK_FILE"
|
||||
else
|
||||
/sbin/reboot -f
|
||||
reboot_system "No interface with physical link is up - Machine is OFFLINE."
|
||||
fi
|
||||
else
|
||||
touch "$RESTART_CHECK_FILE"
|
||||
@ -283,7 +320,14 @@ echononl "Check if IPv4 default route is set.."
|
||||
if [[ ${#DEFAULT_GW_4_ARR[@]} -gt 0 ]] ; then
|
||||
echo_ok
|
||||
if [[ ${#DEFAULT_GW_4_ARR[@]} -eq 1 ]] ; then
|
||||
info "Default IPv4 Gateway(s): ${DEFAULT_GW_4_ARR[@]}"
|
||||
msg="Default IPv4 Gateway(s): ${DEFAULT_GW_4_ARR[@]}"
|
||||
if [[ -z "$msg_info" ]]; then
|
||||
msg_info="$msg"
|
||||
else
|
||||
msg_info="$msg_info
|
||||
|
||||
$msg"
|
||||
fi
|
||||
else
|
||||
msg="Default IPv4 Gateway(s): ${DEFAULT_GW_4_ARR[0]}"
|
||||
for index in "${!DEFAULT_GW_4_ARR[@]}"; do
|
||||
@ -291,13 +335,19 @@ if [[ ${#DEFAULT_GW_4_ARR[@]} -gt 0 ]] ; then
|
||||
msg="$msg
|
||||
${DEFAULT_GW_4_ARR[$index]}"
|
||||
done
|
||||
info "$msg"
|
||||
if [[ -z "$msg_info" ]]; then
|
||||
msg_info="$msg"
|
||||
else
|
||||
msg_info="$msg_info
|
||||
|
||||
$msg"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo_failed
|
||||
PROBLEM_FOUND=true
|
||||
|
||||
error "No default route IPV4is set."
|
||||
error "No default route IPV4 is set."
|
||||
|
||||
if [[ -f "$RESTART_CHECK_FILE" ]] ; then
|
||||
|
||||
@ -309,7 +359,7 @@ else
|
||||
if [[ $_delta -gt 3900 ]] ; then
|
||||
touch "$RESTART_CHECK_FILE"
|
||||
else
|
||||
/sbin/reboot -f
|
||||
reboot_system "No default route IPv4 is set."
|
||||
fi
|
||||
else
|
||||
touch "$RESTART_CHECK_FILE"
|
||||
@ -332,7 +382,14 @@ if $IPV6_PRESENT ; then
|
||||
if [[ ${#DEFAULT_GW_6_ARR[@]} -gt 0 ]] ; then
|
||||
echo_ok
|
||||
if [[ ${#DEFAULT_GW_6_ARR[@]} -eq 1 ]] ; then
|
||||
info "Default IPv6 Gateway(s): ${DEFAULT_GW_6_ARR[@]}"
|
||||
msg="Default IPv6 Gateway(s): ${DEFAULT_GW_6_ARR[@]}"
|
||||
if [[ -z "$msg_info" ]]; then
|
||||
msg_info="$msg"
|
||||
else
|
||||
msg_info="$msg_info
|
||||
|
||||
$msg"
|
||||
fi
|
||||
else
|
||||
msg="Default IPv6 Gateway(s): ${DEFAULT_GW_6_ARR[0]}"
|
||||
for index in "${!DEFAULT_GW_6_ARR[@]}"; do
|
||||
@ -340,12 +397,27 @@ if $IPV6_PRESENT ; then
|
||||
msg="$msg
|
||||
${DEFAULT_GW_6_ARR[$index]}"
|
||||
done
|
||||
info "$msg"
|
||||
|
||||
if [[ -z "$msg_info" ]]; then
|
||||
msg_info="$msg"
|
||||
else
|
||||
msg_info="$msg_info
|
||||
|
||||
$msg"
|
||||
fi
|
||||
|
||||
fi
|
||||
else
|
||||
echo_failed
|
||||
echo_warn
|
||||
|
||||
warn "No default route IPv6 is set."
|
||||
msg="No default route IPv6 is set."
|
||||
if [[ -z "$msg_warn" ]]; then
|
||||
msg_warn="$msg"
|
||||
else
|
||||
msg_warn="$msg_warn
|
||||
|
||||
$msg"
|
||||
fi
|
||||
fi
|
||||
|
||||
fi
|
||||
@ -365,7 +437,15 @@ if [[ -n "$FIRST_NS" ]] ; then
|
||||
echo_ok
|
||||
FOUND_NS_PROBLEM=false
|
||||
|
||||
info "Found nameserver \033[1m$FIRST_NS\033[m at '/etc/resolv.conf'."
|
||||
msg="Found nameserver \033[1m$FIRST_NS\033[m at '/etc/resolv.conf'."
|
||||
if [[ -z "$msg_info" ]]; then
|
||||
msg_info="$msg"
|
||||
else
|
||||
msg_info="$msg_info
|
||||
|
||||
$msg"
|
||||
fi
|
||||
|
||||
else
|
||||
echo_failed
|
||||
error "No nameserverentry at '/etc/resolv.conf' found."
|
||||
@ -402,7 +482,7 @@ if ! $FOUND_NS_PROBLEM ; then
|
||||
if [[ $_delta -gt 3900 ]] ; then
|
||||
touch "$RESTART_CHECK_FILE"
|
||||
else
|
||||
/sbin/reboot -f
|
||||
reboot_system "First nameserver located at /etc/resolv.conf does not work properly."
|
||||
fi
|
||||
else
|
||||
touch "$RESTART_CHECK_FILE"
|
||||
@ -411,11 +491,26 @@ if ! $FOUND_NS_PROBLEM ; then
|
||||
else
|
||||
echo_ok
|
||||
|
||||
info "Nameserver works as expected."
|
||||
msg="Nameserver works as expected."
|
||||
if [[ -z "$msg_info" ]]; then
|
||||
msg_info="$msg"
|
||||
else
|
||||
msg_info="$msg_info
|
||||
|
||||
$msg"
|
||||
fi
|
||||
|
||||
fi
|
||||
else
|
||||
echo_skipped
|
||||
warn "Test was not triggert because of nameserver problems.."
|
||||
msg="Resolver test was not triggert because of nameserver problems.."
|
||||
if [[ -z "$msg_warn" ]]; then
|
||||
msg_warn="$msg"
|
||||
else
|
||||
msg_warn="$msg_warn
|
||||
|
||||
$msg"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
@ -423,7 +518,11 @@ fi
|
||||
# Website reachable?
|
||||
# ---
|
||||
|
||||
FOUND_CHECK_HOST_PROBLEM=true
|
||||
if ! $FOUND_NS_PROBLEM ; then
|
||||
FOUND_CHECK_HOST_PROBLEM=true
|
||||
else
|
||||
FOUND_CHECK_HOST_PROBLEM=false
|
||||
fi
|
||||
|
||||
# Check if some websites reachable..
|
||||
#
|
||||
@ -446,7 +545,14 @@ for _host in $HTTPS_CHECK_HOSTS ; do
|
||||
esac
|
||||
else
|
||||
echo_skipped
|
||||
warn "Test was not triggert because of nameserver problems.."
|
||||
msg="Website accessibility test was not triggert because of nameserver problems.."
|
||||
if [[ -z "$msg_warn" ]]; then
|
||||
msg_warn="$msg"
|
||||
else
|
||||
msg_warn="$msg_warn
|
||||
|
||||
$msg"
|
||||
fi
|
||||
break
|
||||
fi
|
||||
|
||||
@ -466,12 +572,31 @@ if $FOUND_CHECK_HOST_PROBLEM ; then
|
||||
if [[ $_delta -gt 3900 ]] ; then
|
||||
touch "$RESTART_CHECK_FILE"
|
||||
else
|
||||
/sbin/reboot -f
|
||||
reboot_system "No website could be reached."
|
||||
fi
|
||||
else
|
||||
touch "$RESTART_CHECK_FILE"
|
||||
fi
|
||||
clean_up 1
|
||||
else
|
||||
if ! $FOUND_NS_PROBLEM ; then
|
||||
msg="Extern Websites are reachable."
|
||||
if [[ -z "$msg_info" ]]; then
|
||||
msg_info="$msg"
|
||||
else
|
||||
msg_info="$msg_info
|
||||
|
||||
$msg"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n "$msg_info" ]]; then
|
||||
info "$msg_info"
|
||||
fi
|
||||
|
||||
if [[ -n "$msg_warn" ]]; then
|
||||
warn "$msg_warn"
|
||||
fi
|
||||
|
||||
|
||||
|
33
conf/check-connectivity.conf.BAK
Normal file
33
conf/check-connectivity.conf.BAK
Normal file
@ -0,0 +1,33 @@
|
||||
# -------------------------------------------
|
||||
# - Settings for script check-connectivity.sh
|
||||
# -------------------------------------------
|
||||
|
||||
# - IPV6_PRESENT
|
||||
# -
|
||||
# - Possible values: true/false
|
||||
# -
|
||||
# - Example:
|
||||
# - IPV6_PRESENT=false
|
||||
# -
|
||||
# - Default value: true
|
||||
# -
|
||||
#IPV6_PRESENT=true
|
||||
|
||||
|
||||
# - DNS_CHECK_HOSTS
|
||||
# -
|
||||
# - Blank sepatated list of hostnames checked by lokal nameservice simply
|
||||
# - for their ip-addresses
|
||||
# -
|
||||
# - Defaults to: DNS_CHECK_HOSTS="www.oopen.de www.google.com www.heise.de"
|
||||
# -
|
||||
#DNS_CHECK_HOSTS="www.oopen.de www.google.com www.heise.de www.debian.org"
|
||||
|
||||
|
||||
# - HTTPS_CHECK_HOSTS
|
||||
# -
|
||||
# - Blank sepatated list of websites which will be checked for accessibility
|
||||
# -
|
||||
# - Defaults to: HTTPS_CHECK_HOSTS="www.oopen.de www.google.com www.heise.de"
|
||||
# -
|
||||
#HTTPS_CHECK_HOSTS="www.oopen.de www.google.com www.heise.de www.debian.org"
|
Loading…
Reference in New Issue
Block a user