blob: 3f6612535de66162daf9a087f3b132cca98bdfbb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#!/bin/bash
#/**
#@file comparedhcpopengnsys
#@brief Compara la configuración de los equipos en el dhcp y la base de datos de opengnsys
#@brief Definir la variable "DHCPFILE" para indicar un fichero DHCP alternativo.
#@usage comparedhcpopengnsys
#@usage DHCPFILE=/camino/fichero/dhcpd.conf comparedhcpopengnsys
#@warning El script utiliza dos archivos temporales, uno de cada servicio, con el formato nombre;mac;ip.
#@warning El formato depende de que el fichero dhcpd.conf este en el orden "correcto"
#@version 1.0.4
#@author Irina Gómez, Univ. Sevilla.
#@date 2012-02-08
#*/ ##
PROG="$(basename "$0")"
OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
SERVERCONF=$OPENGNSYS/etc/ogAdmServer.cfg
DHCPFILE=${DHCPFILE:-/etc/dhcp/dhcpd.conf}
TMP_DHCP=/tmp/$PROG-dhcp$$
TMP_MYSQL=/tmp/$PROG-mysql$$
source $OPENGNSYS/lib/ogfunctions.sh || exit 1
[ "$*" == "help" ] && help
[ "$*" == "version" ] && version
[ "$USER" != "root" ] && raiseError access "Solo ejecutable por root"
[ -r $DHCPFILE ] || raiseError access "No tenemos acceso al fichero de configuracion del dhcp"
# Obtener datos de acceso a la Base de datos.
source $SERVERCONF 2> /dev/null || raiseError access "Fichero de configuración del servidor"
trap "rm -f $TMP_DHCP $TMP_MYSQL" 1 2 3 9 15
# Creo fichero temporal del dhcp
grep -v "#" $DHCPFILE |egrep -e "host " -e "hardware ethernet" -e fixed-address | sed -e 's/.$//' \
| sed -e s/"^.*host[[:space:]]*"//g -e s/\{/\;/g -e s/"^.*hardware ethernet[[:space:]]*"/=/g -e s/"^.*fixed-address[[:space:]]*"/=/g \
| sed -e :a -e '$!N;s/\n=/ \;/;ta' -e 'P;D'\
| sed -e s/\ //g -e s/://g -e s/\;$//g -e s/\;\;/\;/g |sort > $TMP_DHCP
# Creo fichero temporal del mysql, de la base de datos de opengnsys
dbexec "select CONCAT_WS (';', nombreordenador, mac, ip) from ordenadores order by nombreordenador;" > $TMP_MYSQL
# Comparo los ficheros
echo "Comparamos las configuraciones: < dhcp y > mysql"
diff -bi $TMP_DHCP $TMP_MYSQL && echo "El fichero del servicio dhcp y la base de datos de ogAdmBD tienen la misma configuracion"
rm -f $TMP_DHCP $TMP_MYSQL
|