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 "Pulse cualquier tecla para continuar."
- read -n1 -s NADA
- exit
- }
- clear
- if [ "$USER" != "root" ]
- then
- error
- fi
- # 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"
- FLOG="/var/log/configred.log"
- FAUX="/tmp/configred.aux"
- OPC="z"
- if [ ! -f $FCONFRED ]
- then
- error
- fi
- [ ! -f $FCONFDNS ] && error
- [ -f $FCONFHOST ] || error
- test -f $FCONFNSS || error
- echo "Indique la dirección IP de este equipo:"
- read DIRIP
- GATEWAY=`echo $DIRIP | cut -d. -f1-3`
- GATEWAY="`echo $GATEWAY`.1"
- 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
- echo "Se introducirá la siguiente información en $FCONFRED"
- 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 $FCONFRED
- elif [ "$OPC" = "a" -o "$OPC" = "A" ]
- then
- echo "Finalizando script..."
- exit
- else
- echo "Opción incorrecta."
- sleep 3
- fi
- done
- OPC="z"
- echo "nameserver $DNS1" > $FAUX
- echo "nameserver $DNS2" >> $FAUX
- echo "Se introducirá la siguiente información en $FCONFDNS"
- 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 $FCONFDNS
- elif [ "$OPC" = "a" -o "$OPC" = "A" ]
- then
- echo "Finalizando script..."
- exit
- else
- echo "Opción incorrecta."
- sleep 3
- fi
- done
- OPC="z"
- echo -e "10.10.10.3\tCEPALENCIA.LOCAL" > $FAUX
- echo -e "10.10.10.3\tservers-03.cepalencia.es" >> $FAUX
- more $FCONFHOST >> $FAUX
- echo "Se introducirá la siguiente información en $FCONFHOST"
- 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 $FCONFHOST
- elif [ "$OPC" = "a" -o "$OPC" = "A" ]
- then
- echo "Finalizando script..."
- exit
- else
- echo "Opción incorrecta."
- sleep 3
- fi
- done
- OPC="z"
- ## Forma cutre de modificar /etc/nsswitch.conf
- # more $FCONFNSS | grep -v ^hosts: > $FAUX
- # echo -e "hosts:\tfiles dns" >> $FAUX
- # cp -f $FAUX $FCONFNSS
- ## No nos sirve porque añade la línea de hasts al final
- 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
- echo "Se introducirá la siguiente información en $FCONFNSS"
- 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 $FCONFNSS
- elif [ "$OPC" = "a" -o "$OPC" = "A" ]
- then
- echo "Finalizando script..."
- exit
- else
- echo "Opción incorrecta."
- sleep 3
- fi
- done
- 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