summaryrefslogtreecommitdiffstats
path: root/server/bin
diff options
context:
space:
mode:
authorRamón M. Gómez <ramongomez@us.es>2020-02-18 11:48:20 +0100
committerRamón M. Gómez <ramongomez@us.es>2020-02-18 11:48:20 +0100
commitb7bed1cadd303dc5e927b8d6c33306171fe8ff12 (patch)
tree17d1f06a29f1f9655d0763ed5ba517e6cf736984 /server/bin
parent1f6fd0684cd1cb3ee321307b8d68ed4c3fde074b (diff)
#957: Script `listclientmode` uses common server functions.
Diffstat (limited to 'server/bin')
-rwxr-xr-xserver/bin/listclientmode64
1 files changed, 28 insertions, 36 deletions
diff --git a/server/bin/listclientmode b/server/bin/listclientmode
index 5d02bcee..4193c6fc 100755
--- a/server/bin/listclientmode
+++ b/server/bin/listclientmode
@@ -1,51 +1,43 @@
#!/bin/bash
-# listclientmode: Lista la plantilla de arranque PXE para los clientes,
-# ya sea un equipo o un aula.
-# Nota: Si no existe un enlace entre el fichero PXE con la Ethernet del equipo y su
-# archivo plantilla, se considera que la plantilla por omisión es "default".
-# Uso: listclienmode NombrePC | NombreAula
-# Autores: Irina Gomez y Ramon Gomez - Univ. Sevilla, noviembre 2010
+#/**
+#@file listclientmode
+#@brief Lista la plantilla de arranque PXE para los clientes, ya sea un equipo o un aula.
+#@usage listclientmode Ambito
+#@param Ambito nombre de ordenador o nombre de aula
+#@version 1.0.1 - Versión inicial.
+#@author Irina Gómez, Univ. Sevilla
+#@date 2010-11-29
+#@version 1.0.5 - Mejor acceso a la BD.
+#@author Ramon M. Gómez, Univ. Sevilla
+#@date 2013-03-11
+#**/
# Variables.
-PROG=$(basename $0)
OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
SERVERCONF=$OPENGNSYS/etc/ogAdmServer.cfg
TMPLDIR=$OPENGNSYS/tftpboot/menu.lst/templates
-MYCNF=/tmp/.my.cnf.$$
+
+source $OPENGNSYS/lib/ogfunctions.sh || exit 1
# Control básico de errores.
-if [ $# -ne 1 ]; then
- echo "$PROG: Error de ejecución"
- echo "Formato: $PROG [NOMBRE_PC|NOMBRE_AULA]"
- exit 1
-fi
-if [ ! -r $SERVERCONF ]; then
- echo "$PROG: Sin acceso a fichero de configuración"
- exit 2
-fi
+[ "$*" == "help" ] && help
+[ "$*" == "version" ] && version
+[ $# -eq 1 ] || raiseError usage
+[ "$USER" != "root" ] && raiseError access "Need to be root"
+source $SERVERCONF 2>/dev/null || raiseError access "Sin acceso a fichero de configuración"
# Obtener datos de acceso a la Base de datos.
source $SERVERCONF
# Sustituir caracteres ' por \' para evitar inyección SQL.
-RESOURCE="${1//\'/\'}"
-# Componer fichero con credenciales de conexión.
-touch $MYCNF
-chmod 600 $MYCNF
-cat << EOT > $MYCNF
-[client]
-user=$USUARIO
-password=$PASSWORD
-EOT
-# Borrar el fichero temporal si termina el proceso.
-trap "rm -f $MYCNF" 0 1 2 3 6 9 15
+RESOURCE="${1//\'/\\\'}"
# Obtener nombre de ordenador individual o todos los de una aula e indicar su plantilla asociada.
-mysql --defaults-extra-file=$MYCNF -D "$CATALOG" -s -N -e \
- "SELECT nombreordenador, arranque FROM ordenadores
- JOIN aulas USING (idaula)
- WHERE aulas.nombreaula='$RESOURCE'
- OR nombreordenador='$RESOURCE';" | \
- while read PC TMPL; do
- echo "Equipo \"$PC\" asociado a arranque tipo \"$(head -1 $TMPLDIR/$TMPL |cut -f2 -d" ")\" (fichero $TMPL)"
- done
+dbexec "SELECT nombreordenador, arranque
+ FROM ordenadores
+ JOIN aulas USING (idaula)
+ WHERE aulas.nombreaula='$RESOURCE'
+ OR nombreordenador='$RESOURCE';" | \
+ while read PC TMPL; do
+ echo "Equipo \"$PC\" asociado a arranque tipo \"$(head -1 $TMPLDIR/$TMPL | cut -f2 -d" ")\" (fichero $TMPL)"
+ done