[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 | |
---|
[632bd45] | 10 | # Variables globales. |
---|
[c8fd992] | 11 | PROG="$(basename $0)" |
---|
[632bd45] | 12 | MYCNF=/tmp/.my.cnf.$$ |
---|
| 13 | |
---|
| 14 | # Comprobar parámetros. |
---|
[c8fd992] | 15 | if [ $# -ne 1 ]; then |
---|
| 16 | echo "$PROG: Incorrect operand. Format: $PROG device" >&2 |
---|
| 17 | exit 1 |
---|
| 18 | fi |
---|
| 19 | if [ "$USER" != "root" ]; then |
---|
| 20 | echo "$PROG: Need to be root." >&2 |
---|
| 21 | exit 1 |
---|
| 22 | fi |
---|
| 23 | |
---|
| 24 | # Detectar la interfaz de red. |
---|
| 25 | DEVICES=$(ip -o link show up|awk -F: '$2!~/lo/ {print $2}') |
---|
| 26 | FOUND=0 |
---|
| 27 | for dev in $DEVICES; do |
---|
| 28 | [ "$dev" == "$1" ] && FOUND=1; |
---|
| 29 | done |
---|
| 30 | |
---|
| 31 | if [ $FOUND == 1 ]; then |
---|
| 32 | # Comprobar si hay que modificar la configuración de DHCP. |
---|
| 33 | CHANGE=0 |
---|
| 34 | for f in /etc/{dhcp,dhcp3}/dhcpd.conf; do |
---|
| 35 | file="${f/./-$1.}" |
---|
| 36 | if [ -f $file -a ! $f -ef $file ]; then |
---|
| 37 | ln -f $file $f |
---|
| 38 | CHANGE=1 |
---|
| 39 | fi |
---|
| 40 | done |
---|
| 41 | # Si ha cambiado la configuración, reiniciar DHCP. |
---|
| 42 | if [ $CHANGE == 1 ]; then |
---|
| 43 | for f in /etc/init.d/{isc-dhcp-server,dhcp3-server,dhcpd}; do |
---|
| 44 | [ -x $f ] && $f restart |
---|
| 45 | done |
---|
| 46 | else |
---|
| 47 | echo "Don't change the DHCP configuration." |
---|
| 48 | fi |
---|
| 49 | # Comprobar si hay que modificar la configuración de OpenGnsys. |
---|
| 50 | OPENGNSYS=/opt/opengnsys |
---|
| 51 | CHANGE=0 |
---|
| 52 | for f in etc/{ogAdmServer,ogAdmRepo,ogAdmAgent}.cfg www/controlacceso.php client/etc/ogAdmClient.cfg; do |
---|
| 53 | file="$OPENGNSYS/${f/./-$1.}" |
---|
| 54 | if [ ! -f $file ]; then |
---|
| 55 | echo "$PROG: File $file does not exist." >&2 |
---|
| 56 | exit 2 |
---|
| 57 | fi |
---|
| 58 | cfg=$OPENGNSYS/$f |
---|
| 59 | if [ ! $cfg -ef $file ]; then |
---|
| 60 | ln -f $file $cfg |
---|
| 61 | CHANGE=1 |
---|
| 62 | fi |
---|
| 63 | done |
---|
| 64 | # Si ha cambiado la configuración, reiniciar OpenGnSys y actualizar la BD. |
---|
| 65 | if [ $CHANGE == 1 ]; then |
---|
| 66 | /etc/init.d/opengnsys restart |
---|
| 67 | source $OPENGNSYS/etc/ogAdmServer.cfg |
---|
[69fc529] | 68 | # Componer fichero con credenciales de conexión. |
---|
| 69 | touch $MYCNF |
---|
| 70 | chmod 600 $MYCNF |
---|
| 71 | cat << EOT > $MYCNF |
---|
| 72 | [client] |
---|
| 73 | user=$USUARIO |
---|
| 74 | password=$PASSWORD |
---|
| 75 | EOT |
---|
| 76 | # Ejecutar actualización y borrar fichero de credenciales. |
---|
[9d380ec] | 77 | mysql --defaults-extra-file=$MYCNF -D "$CATALOG" -e \ |
---|
[c8fd992] | 78 | "UPDATE entornos SET ipserveradm='$ServidorAdm' WHERE identorno=1" |
---|
[69fc529] | 79 | rm -f $MYCNF |
---|
[c8fd992] | 80 | echo "Default server interface set to: $1 ($ServidorAdm)" |
---|
| 81 | else |
---|
| 82 | echo "Don't change the default interface: $1" |
---|
| 83 | fi |
---|
| 84 | else |
---|
| 85 | echo "$PROG: Network device not found. Format: $PROG device" >&2 |
---|
| 86 | exit 1 |
---|
| 87 | fi |
---|
| 88 | |
---|