[c8fd992] | 1 | #!/bin/bash |
---|
| 2 | # setserveraddr: modifica los ficheros de configuración para asignar los valores |
---|
| 3 | # de la interfaz de red solicitada. |
---|
| 4 | # Nota: se enlazan los ficheros a los predefinidos detectados para la interfaz. |
---|
| 5 | # Uso: setserveraddr iface |
---|
| 6 | # Autor: Ramon Gomez - Univ. Sevilla |
---|
| 7 | # Fecha: 2011-01-25 |
---|
| 8 | |
---|
| 9 | |
---|
| 10 | # Comprobar parámetros. |
---|
| 11 | PROG="$(basename $0)" |
---|
| 12 | if [ $# -ne 1 ]; then |
---|
| 13 | echo "$PROG: Incorrect operand. Format: $PROG device" >&2 |
---|
| 14 | exit 1 |
---|
| 15 | fi |
---|
| 16 | if [ "$USER" != "root" ]; then |
---|
| 17 | echo "$PROG: Need to be root." >&2 |
---|
| 18 | exit 1 |
---|
| 19 | fi |
---|
| 20 | |
---|
| 21 | # Detectar la interfaz de red. |
---|
| 22 | DEVICES=$(ip -o link show up|awk -F: '$2!~/lo/ {print $2}') |
---|
| 23 | FOUND=0 |
---|
| 24 | for dev in $DEVICES; do |
---|
| 25 | [ "$dev" == "$1" ] && FOUND=1; |
---|
| 26 | done |
---|
| 27 | |
---|
| 28 | if [ $FOUND == 1 ]; then |
---|
| 29 | # Comprobar si hay que modificar la configuración de DHCP. |
---|
| 30 | CHANGE=0 |
---|
| 31 | for f in /etc/{dhcp,dhcp3}/dhcpd.conf; do |
---|
| 32 | file="${f/./-$1.}" |
---|
| 33 | if [ -f $file -a ! $f -ef $file ]; then |
---|
| 34 | ln -f $file $f |
---|
| 35 | CHANGE=1 |
---|
| 36 | fi |
---|
| 37 | done |
---|
| 38 | # Si ha cambiado la configuración, reiniciar DHCP. |
---|
| 39 | if [ $CHANGE == 1 ]; then |
---|
| 40 | for f in /etc/init.d/{isc-dhcp-server,dhcp3-server,dhcpd}; do |
---|
| 41 | [ -x $f ] && $f restart |
---|
| 42 | done |
---|
| 43 | else |
---|
| 44 | echo "Don't change the DHCP configuration." |
---|
| 45 | fi |
---|
| 46 | # Comprobar si hay que modificar la configuración de OpenGnsys. |
---|
| 47 | OPENGNSYS=/opt/opengnsys |
---|
| 48 | CHANGE=0 |
---|
| 49 | for f in etc/{ogAdmServer,ogAdmRepo,ogAdmAgent}.cfg www/controlacceso.php client/etc/ogAdmClient.cfg; do |
---|
| 50 | file="$OPENGNSYS/${f/./-$1.}" |
---|
| 51 | if [ ! -f $file ]; then |
---|
| 52 | echo "$PROG: File $file does not exist." >&2 |
---|
| 53 | exit 2 |
---|
| 54 | fi |
---|
| 55 | cfg=$OPENGNSYS/$f |
---|
| 56 | if [ ! $cfg -ef $file ]; then |
---|
| 57 | ln -f $file $cfg |
---|
| 58 | CHANGE=1 |
---|
| 59 | fi |
---|
| 60 | done |
---|
| 61 | # Si ha cambiado la configuración, reiniciar OpenGnSys y actualizar la BD. |
---|
| 62 | if [ $CHANGE == 1 ]; then |
---|
| 63 | /etc/init.d/opengnsys restart |
---|
| 64 | source $OPENGNSYS/etc/ogAdmServer.cfg |
---|
| 65 | mysql -u "$USUARIO" -p"$PASSWORD" -D "$CATALOG" -N -e \ |
---|
| 66 | "UPDATE entornos SET ipserveradm='$ServidorAdm' WHERE identorno=1" |
---|
| 67 | echo "Default server interface set to: $1 ($ServidorAdm)" |
---|
| 68 | else |
---|
| 69 | echo "Don't change the default interface: $1" |
---|
| 70 | fi |
---|
| 71 | else |
---|
| 72 | echo "$PROG: Network device not found. Format: $PROG device" >&2 |
---|
| 73 | exit 1 |
---|
| 74 | fi |
---|
| 75 | |
---|