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 | |
---|