summaryrefslogtreecommitdiffstats
path: root/server/bin
diff options
context:
space:
mode:
authorRamón M. Gómez <ramongomez@us.es>2020-02-18 14:00:30 +0100
committerRamón M. Gómez <ramongomez@us.es>2020-02-18 14:00:30 +0100
commited1886b4a943a7bd6b97bc5a4f6acbf2d5ded517 (patch)
treed734e6110201bf4c211fcc4181458612ad034a48 /server/bin
parentc25e2ceb50c66096c8a2b9cdbbb624bd689fac1b (diff)
#957: Script `comparemac` uses common server functions.
Diffstat (limited to 'server/bin')
-rwxr-xr-xserver/bin/comparemac57
1 files changed, 27 insertions, 30 deletions
diff --git a/server/bin/comparemac b/server/bin/comparemac
index 0596c323..43d0d288 100755
--- a/server/bin/comparemac
+++ b/server/bin/comparemac
@@ -1,48 +1,45 @@
#!/bin/bash
-# comparemac - script para comparar las direcciones MAC (ethernet) de los clientes
-# conectados a la red con las registradas en OpenGnsys.
-# Requisitos: arp-scan
-# Autores: Manuel González, Ramón M. Gómez - Univ. Sevilla, Junio 2014.
+#/**
+#@file comparemac
+#@brief Comparar las direcciones MAC (ethernet) de los clientes conectados a la red con las registradas en OpenGnsys.
+#@usage comparemac
+#@warning Usa el programa "arp-scan".
+#@version 1.0.6 - Versión inicial.
+#@author Manuel González, Ramón M. Gómez - Univ. Sevilla
+#@date 2014-07-11
+#*/ ##
+
# Variables.
-PROG=$(basename $0)
OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
SERVERCONF=$OPENGNSYS/etc/ogAdmServer.cfg
-# Ficheros temporales.
-MYCNF=$(mktemp /tmp/.my.cnf.XXXXX)
-TMPSQL=$(mktemp /tmp/mysql.cnf.XXXXX)
-TMPSCAN=$(mktemp /tmp/scan.cnf.XXXXX)
+# Funciones globales.
+source $OPENGNSYS/lib/ogfunctions.sh || exit 1
# Control de errores.
-if [ ! -r $SERVERCONF ]; then
- echo "$PROG: Sin acceso a fichero de configuración."
- exit 2
-fi
-if ! which arp-scan &>/dev/null; then
- echo "$PROG: Debe instalarse el programa \"arp-scan\"."
- exit 2
-fi
+[ "$*" == "help" ] && help
+[ "$*" == "version" ] && version
+[ $# -gt 0 ] && raiseError usage
+[ "$USER" != "root" ] && raiseError access "Need to be root"
+[ -r $SERVERCFG ] || raiseError access "Server configuration file"
+which arp-scan &>/dev/null || raiseError notfound "Need to install \"arp-scan\""
# Obtener datos de acceso a la base de datos.
source $SERVERCONF
-# Componer fichero con credenciales de conexión.
-cat << EOT > $MYCNF
-[client]
-user=$USUARIO
-password=$PASSWORD
-EOT
-
# Borrar ficheros temporales si termina el proceso.
-trap "rm -f $MYCNF $TMPSQL $TMPSCAN" 0 1 2 3 6 9 15
+trap "rm -f $TMPSQL $TMPSCAN" 0 1 2 3 6 9 15
+
+# Ficheros temporales.
+TMPSQL=$(mktemp /tmp/mysql.cnf.XXXXX)
+TMPSCAN=$(mktemp /tmp/scan.cnf.XXXXX)
# Obtener datos de ordenadores registrados.
-mysql --defaults-extra-file=$MYCNF -D "$CATALOG" -s -N -e \
- "SELECT ip, mac, REPLACE (aulas.nombreaula, ' ', '_') AS aula
- FROM ordenadores
- JOIN aulas USING (idaula)
- ORDER BY ip" > $TMPSQL
+dbexec "SELECT ip, mac, REPLACE (aulas.nombreaula, ' ', '_') AS aula
+ FROM ordenadores
+ JOIN aulas USING (idaula)
+ ORDER BY ip" > $TMPSQL
# Obtener datos de red.
NET=$(ip -o addr show up | awk -v ip="^$ServidorAdm/" '{if ($3=="inet" && $4 ~ ip) print $4}')