Advertisement
angeldp

Config red funciones

May 24th, 2011
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.99 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Script que configurará los equipos Ubuntu para dejar
  4. # sus parámetros de red preparados para introducirlos
  5. # en el dominio cepalencia.local
  6.  
  7. # Declaro una función para salir cuando se produzca un error
  8.  
  9. function error(){
  10. clear
  11. echo "Se ha producido un error"
  12. echo "$1"
  13. echo "Pulse cualquier tecla para continuar."
  14. read -n1 -s NADA
  15. exit
  16. }
  17.  
  18. # La función verifica muestra, antes de sustituir, el fichero
  19. # modificado con los parámetros necesarios, dando la opción de
  20. # salir sin aplicar las modificaciones
  21.  
  22. function verifica(){
  23. clear
  24. echo "Se introducirá la siguiente información en $1"
  25. more $FAUX
  26. until [ "$OPC" = "a" -o "$OPC" = "A" -o "$OPC" = "c" -o "$OPC" = "C" ]
  27.     do
  28.     echo "¿Desea continuar (c) o abortar (a)? "
  29.     read -n1 -s OPC
  30.     if [ "$OPC" = "c" -o "$OPC" = "C" ]
  31.         then
  32.         cp -f $FAUX $1
  33.     elif [ "$OPC" = "a" -o "$OPC" = "A" ]
  34.         then
  35.         echo "Finalizando script..."
  36.         exit
  37.     else
  38.         echo "Opción incorrecta."
  39.         sleep 3
  40.     fi
  41. done
  42. OPC="z"
  43. }
  44. clear
  45.  
  46. # Comprobamos si se ejecuta como root
  47.  
  48. [ "$USER" = "root" ] || error "Tienes que ser root"
  49.  
  50. # Crear variables con los valores de uso frecuente en el script
  51.  
  52. MASCARA="255.255.255.0"
  53. DNS1="10.10.10.3"
  54. DNS2="194.179.1.100"
  55. FCONFRED="/etc/network/interfaces"
  56. FCONFDNS="/etc/resolv.conf"
  57. FCONFHOST="/etc/hosts"
  58. FCONFNSS="/etc/nsswitch.conf"
  59. FAUX="/tmp/configred.aux"
  60. OPC="z"
  61.  
  62. # Verificamos que existan los archivos
  63.  
  64. [ -f $FCONFRED ] || error "No se encontró $FCONFRED"
  65. [ -f $FCONFDNS ] || error "No se encontró $FCONFDNS"
  66. [ -f $FCONFHOST ] || error "No se encontró $FCONFHOST"
  67. [ -f $FCONFNSS ] || error "No se encontró $FCONFNSS"
  68.  
  69. # Pedimos una IP para crear el archivo interfaces
  70.  
  71. echo "Indique la dirección IP de este equipo:"
  72. read DIRIP
  73. # Calculamos el gateway
  74. GATEWAY=`echo $DIRIP | cut -d. -f1-3`
  75. GATEWAY="`echo $GATEWAY`.1"
  76. # Creamos el fichero interfaces
  77. echo "auto lo" > $FAUX
  78. echo "iface lo inet loopback" >> $FAUX
  79. echo "" >> $FAUX
  80. echo "auto eth0" >> $FAUX
  81. echo "iface eth0 inet static" >> $FAUX
  82. echo "address $DIRIP" >> $FAUX
  83. echo "netmask $MASCARA" >> $FAUX
  84. echo "gateway $GATEWAY" >> $FAUX
  85.  
  86. verifica $FCONFRED
  87.  
  88. echo "nameserver $DNS1" > $FAUX
  89. echo "nameserver $DNS2" >> $FAUX
  90.  
  91. verifica $FCONFDNS
  92.  
  93. more $FCONFHOST | grep -v ^10.10.10.3 > $FAUX
  94. cp -f $FAUX $FCONFHOST
  95. echo -e "10.10.10.3\tCEPALENCIA.LOCAL" > $FAUX
  96. echo -e "10.10.10.3\tservers-03.cepalencia.es" >> $FAUX
  97. more $FCONFHOST >> $FAUX
  98.  
  99. verifica $FCONFHOST
  100.  
  101. # Cambio la línes del fichero /etc/nsswitch.conf
  102. CONT=`more $FCONFNSS | wc -l`
  103. NLINEA=1
  104. rm -f $FAUX
  105. until [ $NLINEA -eq $CONT ]
  106.     do
  107.     LINEA=`more $FCONFNSS | head -$NLINEA | tail -1`
  108.     CTR=`echo $LINEA | grep ^hosts: | wc -l`
  109.     if [ $CTR -eq 0 ]
  110.         then
  111.         echo $LINEA >> $FAUX
  112.     else
  113.         echo -e "hosts:\tfiles dns" >> $FAUX
  114.     fi
  115.     NLINEA=`expr $NLINEA + 1`
  116. done
  117.  
  118. verifica $FCONFNSS
  119.    
  120. clear
  121. echo "Se han modificado los ficheros necesarios,"
  122. echo "pulse cualquier tecla para reiniciar la red."
  123. read -n1 -s NADA
  124. /etc/init.d/networking restart
  125. exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement