source: server/bin/comparedhcpopengnsys @ 4377223

918-git-images-111dID-1020_logrotateBugID-1037_Mostrar.TipoDisco.WebID-1038_Muestra.el.numero.de.ordenadoresID-1039_Asignar_Disco.Particion.Imagen.AccesoRemotoID-824_Iniciar.Sistema.Restauradodevel-ogadmserver-for-masterdisk-imagemainmaster-1037opengnsys-1.1.1dpreqndtest
Last change on this file since 4377223 was 7b3dc7a, checked in by ramon <ramongomez@…>, 8 years ago

Versión 1.0.6b #719: Usar ficheros PXE con MAC en mayúsculas (topic:288); soportar tabuladores en comparación DHCP-BD.

git-svn-id: https://opengnsys.es/svn/branches/version1.1@5099 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100755
File size: 2.1 KB
Line 
1#!/bin/bash
2# Descripcion: scrit compara la configuración de los equipos en el dhcp y la base de datos de opengnsys
3# utiliza dos archivos temporales, uno de cada servicio, con el formato nombre;mac;ip.
4# El formato depende de que el fichero dhcpd.conf este en el orden "correcto"
5# Uso:  comparedhcpopengnsys    (fichero DHCP por defecto: /etc/dhcp/dhcpd.conf)
6#       DHCPFILE=/camino/fichero/dhcpd.conf comparedhcpopengnsys
7# Autora: Irina Gómez, Univ. Sevilla.
8# Fecha: 2012-02-08
9
10
11PROG=$(basename $0)
12DHCPFILE=${DHCPFILE:-/etc/dhcp/dhcpd.conf}
13TMP_DHCP=/tmp/$PROG-dhcp$$
14TMP_MYSQL=/tmp/$PROG-mysql$$
15TMP_MYCNF=/tmp/.my.cnf.$$
16
17OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
18SERVERCONF=$OPENGNSYS/etc/ogAdmServer.cfg
19
20if [ "$USER" != "root" ]; then
21        echo "$PROG: Error: solo ejecutable por root" >&2
22        exit 1
23fi
24if [ ! -r $DHCPFILE ] ; then
25        echo "$PROG: No tenemos acceso al fichero de configuracion del dhcp"
26        exit 2
27fi
28
29# Obtener datos de acceso a la Base de datos.
30source $SERVERCONF
31# Componer fichero con credenciales de conexión.
32touch $TMP_MYCNF
33chmod 600 $TMP_MYCNF
34cat << EOT > $TMP_MYCNF
35[client]
36user=$USUARIO
37password=$PASSWORD
38EOT
39
40trap "rm -f $TMP_DHCP $TMP_MYSQL $TMP_MYCNF" 1 2 3 9 15
41# Creo fichero temporal del dhcp
42grep -v "#" $DHCPFILE |egrep -e "host " -e "hardware ethernet" -e fixed-address | sed -e 's/.$//' \
43        | sed -e s/"^.*host[[:space:]]*"//g -e s/\{/\;/g -e s/"^.*hardware ethernet[[:space:]]*"/=/g -e  s/"^.*fixed-address[[:space:]]*"/=/g \
44        | sed -e :a -e '$!N;s/\n=/ \;/;ta' -e 'P;D'\
45        | sed -e s/\ //g -e s/://g -e s/\;$//g -e s/\;\;/\;/g |sort > $TMP_DHCP
46
47
48# Creo fichero temporal del mysql, de la base de datos de opengnsys
49mysql --defaults-extra-file=$TMP_MYCNF -D "$CATALOG" -N -e \
50        "select  CONCAT_WS (';', nombreordenador,  mac, ip) from ordenadores order by nombreordenador;" > $TMP_MYSQL
51
52# Comparo los ficheros
53echo "Comparamos las configuraciones: < dhcp y > mysql"
54diff -bi $TMP_DHCP $TMP_MYSQL 
55[ $? == 0 ] && echo "El fichero del servicio dhcp y la base de datos de ogAdmBD tienen la misma configuracion"
56
57rm -f $TMP_DHCP $TMP_MYSQL $TMP_MYCNF
58
Note: See TracBrowser for help on using the repository browser.