Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Script que configurará los equipos Ubuntu para dejar
- # sus parámetros de red preparados para introducirlos
- # en el dominio cepalencia.local
- # Declaro una función para salir cuando se produzca un error
- function error(){
- clear
- echo "Se ha producido un error"
- echo "$1"
- echo "Pulse cualquier tecla para continuar."
- read -n1 -s NADA
- exit
- }
- # La función verifica muestra, antes de sustituir, el fichero
- # modificado con los parámetros necesarios, dando la opción de
- # salir sin aplicar las modificaciones
- function verifica(){
- clear
- echo "Se introducirá la siguiente información en $1"
- more $FAUX
- until [ "$OPC" = "a" -o "$OPC" = "A" -o "$OPC" = "c" -o "$OPC" = "C" ]
- do
- echo "¿Desea continuar (c) o abortar (a)? "
- read -n1 -s OPC
- if [ "$OPC" = "c" -o "$OPC" = "C" ]
- then
- cp -f $FAUX $1
- elif [ "$OPC" = "a" -o "$OPC" = "A" ]
- then
- echo "Finalizando script..."
- exit
- else
- echo "Opción incorrecta."
- sleep 3
- fi
- done
- OPC="z"
- }
- clear
- # Comprobamos si se ejecuta como root
- [ "$USER" = "root" ] || error "Tienes que ser root"
- # Crear variables con los valores de uso frecuente en el script
- MASCARA="255.255.255.0"
- DNS1="10.10.10.3"
- DNS2="194.179.1.100"
- FCONFRED="/etc/network/interfaces"
- FCONFDNS="/etc/resolv.conf"
- FCONFHOST="/etc/hosts"
- FCONFNSS="/etc/nsswitch.conf"
- FAUX="/tmp/configred.aux"
- OPC="z"
- # Verificamos que existan los archivos
- [ -f $FCONFRED ] || error "No se encontró $FCONFRED"
- [ -f $FCONFDNS ] || error "No se encontró $FCONFDNS"
- [ -f $FCONFHOST ] || error "No se encontró $FCONFHOST"
- [ -f $FCONFNSS ] || error "No se encontró $FCONFNSS"
- # Pedimos una IP para crear el archivo interfaces
- echo "Indique la dirección IP de este equipo:"
- read DIRIP
- # Calculamos el gateway
- GATEWAY=`echo $DIRIP | cut -d. -f1-3`
- GATEWAY="`echo $GATEWAY`.1"
- # Creamos el fichero interfaces
- echo "auto lo" > $FAUX
- echo "iface lo inet loopback" >> $FAUX
- echo "" >> $FAUX
- echo "auto eth0" >> $FAUX
- echo "iface eth0 inet static" >> $FAUX
- echo "address $DIRIP" >> $FAUX
- echo "netmask $MASCARA" >> $FAUX
- echo "gateway $GATEWAY" >> $FAUX
- verifica $FCONFRED
- echo "nameserver $DNS1" > $FAUX
- echo "nameserver $DNS2" >> $FAUX
- verifica $FCONFDNS
- more $FCONFHOST | grep -v ^10.10.10.3 > $FAUX
- cp -f $FAUX $FCONFHOST
- echo -e "10.10.10.3\tCEPALENCIA.LOCAL" > $FAUX
- echo -e "10.10.10.3\tservers-03.cepalencia.es" >> $FAUX
- more $FCONFHOST >> $FAUX
- verifica $FCONFHOST
- # Cambio la línes del fichero /etc/nsswitch.conf
- CONT=`more $FCONFNSS | wc -l`
- NLINEA=1
- rm -f $FAUX
- until [ $NLINEA -eq $CONT ]
- do
- LINEA=`more $FCONFNSS | head -$NLINEA | tail -1`
- CTR=`echo $LINEA | grep ^hosts: | wc -l`
- if [ $CTR -eq 0 ]
- then
- echo $LINEA >> $FAUX
- else
- echo -e "hosts:\tfiles dns" >> $FAUX
- fi
- NLINEA=`expr $NLINEA + 1`
- done
- verifica $FCONFNSS
- clear
- echo "Se han modificado los ficheros necesarios,"
- echo "pulse cualquier tecla para reiniciar la red."
- read -n1 -s NADA
- /etc/init.d/networking restart
- exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement