CREATE DNS

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

#!/bin/bash
# -------------------------------------------------------------------
# 
# (c) 2005  Detlef Hahn        
# Versionlog 
#  29.11.2005 Detlef Hahn         Originalversion  Lokales Netz funktioniert
#  
# -------------------------------------------------------------------


CUUP=`tput cuu1`
CLR_EOS=`tput ed`
blue=""
grev=""                # gruen und rev
grey=""                # schwarz auf grau 
norm=""

# --------------------------------------------------------------------
# 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  ""$clr_eol "" Datum : $(date '+%d.%m.%y')$(tput cup 0 $p) $1 $(tput cup 0 54) Uhrzeit : $(date '+%H:%M')""
echo  ""$clr_eol "" `uname -a` ""
echo
}

show() {

echo  ""$clr_eol ""  $1""
}
# -----------------------------------------------------------------------------------------------------------

#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 


   Copyright © 2003 - 2024 by Detlef Hahn  http://www.detlefhahn.de       Stand  08.05.15 11:49