Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # @angeldp
- # Activa o desactiva de forma permanente las interfaces de red
- # presentes en sistemas RedHat based.
- # <Constantes>
- NETDIR="/etc/sysconfig/network-scripts"
- AUXFICH="${TEMP}/auxfich.tmp"
- ROJO="\e[1;31m"
- VERDE="\e[1;32m"
- ORIGIN="\e[1;m"
- # </Constantes>
- # <Funciones>
- function echoRojo(){
- echo -e "${ROJO}${*}${ORIGIN}"
- }
- function echoVerde(){
- echo -e "${VERDE}${*}$ORIGIN"
- }
- function fallo(){
- clear
- echoRojo "¡Se ha producido un error!"
- echo $1
- read -s -n1 -p "Pulse para finalizar..."
- rm -rf $AUXFICH &> /dev/null
- clear
- exit
- }
- function ayuda(){
- clear
- echoVerde Sintaxis:
- echo "$0 '[ --KO | --OK ]'"
- echo -e "--KO\tDeshabilita las interfaces de red permanentemente"
- echo -e "--OK\tHabilita las interfaces de red de forma permanente"
- echo "Sin parámetros se mostrará esta ayuda"
- read -n1 -sp "Pulse para finalizar..."
- clear
- rm -rf $AUXFICH &> /dev/null
- exit
- }
- function tumba(){
- clear
- for NIC in $*
- do
- more $NETDIR/$NIC | grep -iv ^ONBOOT > $AUXFICH
- echo "ONBOOT=no" >> $AUXFICH
- mv -f $AUXFICH $NETDIR/$NIC 2> /dev/null
- [ $? -eq 0 ] || fallo "Se produjo un error con $NETDIR/$NIC"
- echo -ne "`echo $NIC | cut -d- -f2`\t"
- echoRojo Deshabilitada
- done
- }
- function levanta(){
- clear
- for NIC in $*
- do
- more $NETDIR/$NIC | grep -iv ^ONBOOT > $AUXFICH
- echo "ONBOOT=yes" >> $AUXFICH
- mv -f $AUXFICH $NETDIR/$NIC 2> /dev/null
- [ $? -eq 0 ] || fallo "Se produjo un error con $NETDIR/$NIC"
- echo -ne "`echo $NIC | cut -d- -f2`\t"
- echoVerde Habilitada
- done
- }
- # </Funciones>
- # <Comprobaciones>
- #Se tiene que ejecutar con no más de 1 parámetro
- [ $# -le 1 ] || fallo "Sintaxis incorrecta"
- #Debe existir el directorio de configuración de la red
- [ -d $NETDIR ] || fallo "No existe el directorio $NETDIR"
- #Se debe ejecutar con privilegios administrativos
- [ $UID -eq 0 ] || fallo "Debe ejecutarse como administrador"
- # </Comprobaciones>
- #Según sea el primer parámetro se le da un valor a la variable OPCION
- OPCION=""
- case $1 in
- --KO | --ko )
- OPCION="K";;
- --OK | --ok )
- OPCION="S";;
- * )
- ayuda;;
- esac
- # Obtener las interfaces configuradas
- IFACES=`ls -1 $NETDIR | grep ^ifcfg- | grep -v ifcfg-lo`
- numIFACES=`echo $IFACES | wc -w`
- # Si el número de interfaces es 0 lo indico y salgo
- [ $numIFACES -gt 0 ] || fallo "No se han encontrado interfaces para configurar"
- if [ "$OPCION" = "K" ]
- then
- tumba $IFACES
- service network restart
- else
- levanta $IFACES
- service network restart
- fi
- echo -e "\n\n"
- read -n1 -sp "Pulse para finalizar.."
- rm -rf $AUXFICH 2> /dev/null
- clear
- exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement