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 ]"
|
echo -e "\033[75G[ \033[1;31mfailed\033[m ]"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
echo_warn() {
|
||||||
|
if $terminal ; then
|
||||||
|
echo -e "\033[75G[ \033[33m\033[1mwarn\033[m ]"
|
||||||
|
fi
|
||||||
|
}
|
||||||
echo_skipped() {
|
echo_skipped() {
|
||||||
if $terminal ; then
|
if $terminal ; then
|
||||||
echo -e "\033[75G[ \033[33m\033[1mskipped\033[m ]"
|
echo -e "\033[75G[ \033[37m\033[1mskipped\033[m ]"
|
||||||
fi
|
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
|
# - Jobhandling
|
||||||
# ----------
|
# ----------
|
||||||
@ -212,6 +230,7 @@ fi
|
|||||||
# -
|
# -
|
||||||
DEFAULT_IPV6_PRESENT=true
|
DEFAULT_IPV6_PRESENT=true
|
||||||
DEFAULT_CHECK_HOSTS="www.oopen.de www.google.de www.heise.de www.debian.org"
|
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")'."
|
echononl "Load Configurations from file '$(basename "$conf_file")'."
|
||||||
if [[ -f "$conf_file" ]]; then
|
if [[ -f "$conf_file" ]]; then
|
||||||
@ -219,12 +238,24 @@ if [[ -f "$conf_file" ]]; then
|
|||||||
echo_ok
|
echo_ok
|
||||||
else
|
else
|
||||||
echo_skipped
|
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
|
fi
|
||||||
|
|
||||||
[[ -z "$IPV6_PRESENT" ]] && IPV6_PRESENT="$DEFAULT_IPV6_PRESENT"
|
[[ -z "$IPV6_PRESENT" ]] && IPV6_PRESENT="$DEFAULT_IPV6_PRESENT"
|
||||||
[[ -z "$DNS_CHECK_HOSTS" ]] && DNS_CHECK_HOSTS="$DEFAULT_CHECK_HOSTS"
|
[[ -z "$DNS_CHECK_HOSTS" ]] && DNS_CHECK_HOSTS="$DEFAULT_CHECK_HOSTS"
|
||||||
[[ -z "$HTTPS_CHECK_HOSTS" ]] && HTTPS_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
|
blank_line
|
||||||
@ -240,7 +271,13 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if $LINK_UP ; then
|
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
|
else
|
||||||
error 'Machine is OFFLINE'
|
error 'Machine is OFFLINE'
|
||||||
if [[ -f "$RESTART_CHECK_FILE" ]] ; then
|
if [[ -f "$RESTART_CHECK_FILE" ]] ; then
|
||||||
@ -253,7 +290,7 @@ else
|
|||||||
if [[ $_delta -gt 3900 ]] ; then
|
if [[ $_delta -gt 3900 ]] ; then
|
||||||
touch "$RESTART_CHECK_FILE"
|
touch "$RESTART_CHECK_FILE"
|
||||||
else
|
else
|
||||||
/sbin/reboot -f
|
reboot_system "No interface with physical link is up - Machine is OFFLINE."
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
touch "$RESTART_CHECK_FILE"
|
touch "$RESTART_CHECK_FILE"
|
||||||
@ -283,7 +320,14 @@ echononl "Check if IPv4 default route is set.."
|
|||||||
if [[ ${#DEFAULT_GW_4_ARR[@]} -gt 0 ]] ; then
|
if [[ ${#DEFAULT_GW_4_ARR[@]} -gt 0 ]] ; then
|
||||||
echo_ok
|
echo_ok
|
||||||
if [[ ${#DEFAULT_GW_4_ARR[@]} -eq 1 ]] ; then
|
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
|
else
|
||||||
msg="Default IPv4 Gateway(s): ${DEFAULT_GW_4_ARR[0]}"
|
msg="Default IPv4 Gateway(s): ${DEFAULT_GW_4_ARR[0]}"
|
||||||
for index in "${!DEFAULT_GW_4_ARR[@]}"; do
|
for index in "${!DEFAULT_GW_4_ARR[@]}"; do
|
||||||
@ -291,13 +335,19 @@ if [[ ${#DEFAULT_GW_4_ARR[@]} -gt 0 ]] ; then
|
|||||||
msg="$msg
|
msg="$msg
|
||||||
${DEFAULT_GW_4_ARR[$index]}"
|
${DEFAULT_GW_4_ARR[$index]}"
|
||||||
done
|
done
|
||||||
info "$msg"
|
if [[ -z "$msg_info" ]]; then
|
||||||
|
msg_info="$msg"
|
||||||
|
else
|
||||||
|
msg_info="$msg_info
|
||||||
|
|
||||||
|
$msg"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo_failed
|
echo_failed
|
||||||
PROBLEM_FOUND=true
|
PROBLEM_FOUND=true
|
||||||
|
|
||||||
error "No default route IPV4is set."
|
error "No default route IPV4 is set."
|
||||||
|
|
||||||
if [[ -f "$RESTART_CHECK_FILE" ]] ; then
|
if [[ -f "$RESTART_CHECK_FILE" ]] ; then
|
||||||
|
|
||||||
@ -309,7 +359,7 @@ else
|
|||||||
if [[ $_delta -gt 3900 ]] ; then
|
if [[ $_delta -gt 3900 ]] ; then
|
||||||
touch "$RESTART_CHECK_FILE"
|
touch "$RESTART_CHECK_FILE"
|
||||||
else
|
else
|
||||||
/sbin/reboot -f
|
reboot_system "No default route IPv4 is set."
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
touch "$RESTART_CHECK_FILE"
|
touch "$RESTART_CHECK_FILE"
|
||||||
@ -332,7 +382,14 @@ if $IPV6_PRESENT ; then
|
|||||||
if [[ ${#DEFAULT_GW_6_ARR[@]} -gt 0 ]] ; then
|
if [[ ${#DEFAULT_GW_6_ARR[@]} -gt 0 ]] ; then
|
||||||
echo_ok
|
echo_ok
|
||||||
if [[ ${#DEFAULT_GW_6_ARR[@]} -eq 1 ]] ; then
|
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
|
else
|
||||||
msg="Default IPv6 Gateway(s): ${DEFAULT_GW_6_ARR[0]}"
|
msg="Default IPv6 Gateway(s): ${DEFAULT_GW_6_ARR[0]}"
|
||||||
for index in "${!DEFAULT_GW_6_ARR[@]}"; do
|
for index in "${!DEFAULT_GW_6_ARR[@]}"; do
|
||||||
@ -340,12 +397,27 @@ if $IPV6_PRESENT ; then
|
|||||||
msg="$msg
|
msg="$msg
|
||||||
${DEFAULT_GW_6_ARR[$index]}"
|
${DEFAULT_GW_6_ARR[$index]}"
|
||||||
done
|
done
|
||||||
info "$msg"
|
|
||||||
|
if [[ -z "$msg_info" ]]; then
|
||||||
|
msg_info="$msg"
|
||||||
|
else
|
||||||
|
msg_info="$msg_info
|
||||||
|
|
||||||
|
$msg"
|
||||||
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
else
|
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
|
||||||
|
|
||||||
fi
|
fi
|
||||||
@ -365,7 +437,15 @@ if [[ -n "$FIRST_NS" ]] ; then
|
|||||||
echo_ok
|
echo_ok
|
||||||
FOUND_NS_PROBLEM=false
|
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
|
else
|
||||||
echo_failed
|
echo_failed
|
||||||
error "No nameserverentry at '/etc/resolv.conf' found."
|
error "No nameserverentry at '/etc/resolv.conf' found."
|
||||||
@ -402,7 +482,7 @@ if ! $FOUND_NS_PROBLEM ; then
|
|||||||
if [[ $_delta -gt 3900 ]] ; then
|
if [[ $_delta -gt 3900 ]] ; then
|
||||||
touch "$RESTART_CHECK_FILE"
|
touch "$RESTART_CHECK_FILE"
|
||||||
else
|
else
|
||||||
/sbin/reboot -f
|
reboot_system "First nameserver located at /etc/resolv.conf does not work properly."
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
touch "$RESTART_CHECK_FILE"
|
touch "$RESTART_CHECK_FILE"
|
||||||
@ -411,11 +491,26 @@ if ! $FOUND_NS_PROBLEM ; then
|
|||||||
else
|
else
|
||||||
echo_ok
|
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
|
fi
|
||||||
else
|
else
|
||||||
echo_skipped
|
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
|
fi
|
||||||
|
|
||||||
|
|
||||||
@ -423,7 +518,11 @@ fi
|
|||||||
# Website reachable?
|
# 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..
|
# Check if some websites reachable..
|
||||||
#
|
#
|
||||||
@ -446,7 +545,14 @@ for _host in $HTTPS_CHECK_HOSTS ; do
|
|||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
echo_skipped
|
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
|
break
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -466,12 +572,31 @@ if $FOUND_CHECK_HOST_PROBLEM ; then
|
|||||||
if [[ $_delta -gt 3900 ]] ; then
|
if [[ $_delta -gt 3900 ]] ; then
|
||||||
touch "$RESTART_CHECK_FILE"
|
touch "$RESTART_CHECK_FILE"
|
||||||
else
|
else
|
||||||
/sbin/reboot -f
|
reboot_system "No website could be reached."
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
touch "$RESTART_CHECK_FILE"
|
touch "$RESTART_CHECK_FILE"
|
||||||
fi
|
fi
|
||||||
clean_up 1
|
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
|
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