summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2012-04-27 10:24:20 +0000
committerramon <ramongomez@us.es>2012-04-27 10:24:20 +0000
commit0f16e9fbb57e3c3ea7f88f6d659771db48bd0a71 (patch)
tree47f439d9d378b2b6d8afee7019dbc9e3365dc8fe /server
parent12e8e382a3d6182434be849980b10ba7e04d098b (diff)
Versión 1.0.4, #488: Integrar ticket:488 en rama de desarrollo.
git-svn-id: https://opengnsys.es/svn/branches/version1.0@2995 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'server')
-rwxr-xr-xserver/bin/compareDhcpOpengnsys49
1 files changed, 49 insertions, 0 deletions
diff --git a/server/bin/compareDhcpOpengnsys b/server/bin/compareDhcpOpengnsys
new file mode 100755
index 00000000..291000e2
--- /dev/null
+++ b/server/bin/compareDhcpOpengnsys
@@ -0,0 +1,49 @@
+#!/bin/bash
+# Descripcion: scrit compara la configuración de los equipos en el dhcp y la base de datos de opengnsys
+# utiliza dos archivos temporales, uno de cada servicio, con el formato nombre;mac;ip.
+# El formato depende de que el fichero dhcpd.conf este en el orden "correcto"
+# Uso: compareDhcpOpengnsys (fichero DHCP por defecto: /etc/dhcp/dhcpd.conf)
+# DHCPFILE=/camino/fichero/dhcpd.conf compareDhcpOpengnsys
+# Autora: Irina Gómez, Univ. Sevilla.
+# Fecha: 2012-02-08
+
+
+PROG=$(basename $0)
+DHCPFILE=${DHCPFILE:-/etc/dhcp/dhcpd.conf}
+TMP_DHCP=/tmp/$PROG-dhcp$$
+TMP_MYSQL=/tmp/$PROG-mysql$$
+
+OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
+SERVERCONF=$OPENGNSYS/etc/ogAdmServer.cfg
+
+if [ "$USER" != "root" ]; then
+ echo "$PROG: Error: solo ejecutable por root" >&2
+ exit 1
+fi
+if [ ! -r $DHCPFILE ] ; then
+ echo "$PROG: No tenemos acceso al fichero de configuracion del dhcp"
+ exit 2
+fi
+
+# Obtener datos de acceso a la Base de datos.
+source $SERVERCONF
+
+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 "//g -e s/\{/\;/g -e s/"^.*hardware ethernet "/=/g -e s/"^.*fixed-address "/=/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
+mysql -u "$USUARIO" -p"$PASSWORD" -D "$CATALOG" -N -e \
+ "select CONCAT_WS (';', nombreordenador, mac, ip) from ordenadores order by nombreordenador;" > $TMP_MYSQL
+
+# Comparo los ficheros
+echo "Comparamos las configuraciones: < dhcp y > mysql"
+diff -i $TMP_DHCP $TMP_MYSQL
+[ $? == 0 ] && echo "El ficheros del servicio dhcp y la base de datos de ogAdmBD tienen la misma configuracion"
+
+rm -f $TMP_DHCP $TMP_MYSQL
+