Check_netz
Im Rahmen des inside-network Projektes der lug-gg habe ich 2005 dieses Utility geschrieben.Wenn ein Container für eine virtuelle Machine copiert wird sollten danach der Hostname
und verschiedene Dateien angepasst werden.
Ein Script kann helfen, keine Datei zu vergessen.
Evtl müssen Sie heute noch etwas anpassen.
Download script : check_netz.tar.gz
# -------------------------------------------------------------------
#
# (c) 2005 Detlef Hahn
# Versionlog
# 29.11.2005 Detlef Hahn Originalversion Lokales Netz funktioniert
#
# -------------------------------------------------------------------
CUUP=`tput cuu1`
CLR_EOS=`tput ed`
blue="[37;44m"
grev="[39;42m" # gruen und rev
grey="[30;47m" # schwarz auf grau
norm="[0m"
# --------------------------------------------------------------------
# Functions muessen vor der Verwendung deklariert werden
# --------------------------------------------------------------------
kopf() {
typeset -i p
len={#1}
rev=$(tput smso) #terminal capabilities zuweisen
#norm=$(tput rmso)
clr_eol=$(tput el)
((p=(32-l)/2+17))
clear
echo "[37;44m"$clr_eol "[1m" Datum : $(date '+%d.%m.%y')$(tput cup 0 $p) $1 $(tput cup 0 54) Uhrzeit : $(date '+%H:%M')"[0m"
echo "[35;47m"$clr_eol "[1m" `uname -a` "[0m"
echo
}
show() {
echo "[37;44m"$clr_eol "[1m" $1"[0m"
}
# -----------------------------------------------------------------------------------------------------------
#Prompt mit Argumenten
# Eingabe cmd
# q oder Q = Return wert 1
# -x oder + x Toggle Debug Mode
#!cmd Shell escape (cmd wird ausgefuehrt)
#alles andere wird in $cmd zurueckgegeben
# --------------------------------------------
prompt_jn() {
abr=${quit:-"exit 1"}
while echo "\${*} oder (q/Q) fuer $abr: \c" >&2
read cmd
do
case $cmd in
+x|-x) set $cmd ;;
Q|q) return 1 ;;
!*) eval `expr "$cmd" : "!(.*\)"` ;;
*) return 0
esac
done
}
prompt_jn() {
i=0
while echo -n "$1 (j/n) "
read antw
do
case $antw in
j|J) return 0 ;;
n|N) return 1 ;;
*) echo "Wer lesen kann ist klar im Vorteil"
(( i = i + 1 ))
if [[ $i -gt 3 ]]
then
echo "hoffnungslos! wir geben auf"
exit 1
fi
;;
esac
done
}
cont() {
echo "Fortsetzung durch \c"
read dummy
if [ "${dummy}" -eq "q" }
then
exit 1
fi
echo "${CUUP}${CLR_EOS}\c"
}
kopf "Netzwerk Pruefung"
echo "Folgende Dateien und Verzeichnisse sind im Zusammenhang mit Netzwerk wichtig"
echo /etc/
echo " hostname hosts resolv.conf "
echo /etc/network
echo " interfaces options [start_mask]"
echo " --------------------------------------------------------------------- "
#echo -e ${blue}
show "Systemname = `uname -n`"
show /etc/hostname=`cat /etc/hostname`
echo -e ${norm}
prompt_jn "hat der Rechner den richtigen Namen"
if [ "$?" = "1" ] ; then
echo "bitte in /etc/hostname korrigieren"
fi
echo " --------------------------------------------------------------------- "
echo
echo ${blue}
ifconfig
echo ${norm}
prompt_jn "wurden alle Netzwerkkarten richtig erkannt und haben sie die richtige IP ?"
if [ "$?" = "1" ] ; then
echo "bitte in /etc/interfaces korrigieren"
exit 1
fi
echo " --------------------------------------------------------------------- "
echo
echo "Wir versuchen jetzt den Rechner ueber seine ${grev} lokale IP 127.0.0.1 ${norm} anzusprechen"
echo ${blue}
ping -c 2 127.0.0.1
echo ${norm}
prompt_jn "Hat das funktioniert ?"
if [ "$?" = "1" ] ; then
echo "Hm, "
exit 1
fi
echo " --------------------------------------------------------------------- "
echo
echo "Wir versuchen jetzt den Rechner ueber den Namen ${grev} localhost ${norm} anzusprechen"
echo ${blue}
ping -c 2 localhost
echo ${norm}
prompt_jn "Hat das funktioniert ?"
if [ "$?" = "1" ] ; then
echo ${blue}
grep '127.0.0.1' /etc/hosts
echo ${norm}
prompt_jn "ist der localhost der IP 127.0.0.1 in der Datei /etc/hosts richtig zugeordnet "
if [ "$?" = "1" ] ; then
echo "Bitte in ${red} /etc/host ${norm} den Eintrag richtig setzen"
echo "${blue} 127.0.0.1 localhost $(uname -n) ${norm}"
exit 1
fi
echo " --------------------------------------------------------------------- "
echo
echo ${blue}
cat /etc/host.conf
echo ${norm}
echo "/etc/host.conf muss die Eintraege:"
echo $grey
echo "order host,bind"
echo "multi on"
echo ${norm}
echo enthalten
prompt_jn "sind diese Eintraege gesetzt? "
if [ "$?" = "1" ] ; then
echo "Bitte in /etc/host.conf der Eintrag richtig setzen"
exit 1
fi
fi
echo " --------------------------------------------------------------------- "
echo
echo "Wir versuchen jetzt den Rechner ueber den Namen ${grev} $(uname -n) ${norm} anzusprechen"
echo ${blue}
ping -c 2 `uname -n`
stat=$?
echo ${norm}
if [ $stat -eq 0 ] ; then
echo ${blue}
echo " --------------------------------------------------------------------- "
echo
echo " Gratulation, das lokale Netz funktioniert!"
echo " --------------------------------------------------------------------- "
echo ${norm}
else
echo "Da scheint noch etas mit der Namesauflösung (DNS) nicht zu stimmen"
fi
