summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2013-03-11 12:42:08 +0000
committerramon <ramongomez@us.es>2013-03-11 12:42:08 +0000
commitd1d41ad8fc13e08a0b670b154900728fa7246738 (patch)
tree421b7072e7656461d074b4d781bf2a8b98842198 /server
parent7fc01b97f7775675e95d8b0e7f184364f79e04b0 (diff)
#586: Mejoras en el script {{{listclientmode}}}:
* Se aplica el cambio recomendado a la llamada al comando {{{mysql}}} para no mostrar las credenciales de acceso a la BD. * También se ha mejorado el rendimiento del script, reduciendo los accesos a la BD a solo 1 consulta. git-svn-id: https://opengnsys.es/svn/branches/version1.0@3676 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'server')
-rwxr-xr-xserver/bin/listclientmode42
1 files changed, 18 insertions, 24 deletions
diff --git a/server/bin/listclientmode b/server/bin/listclientmode
index 4e30731a..9b6866fd 100755
--- a/server/bin/listclientmode
+++ b/server/bin/listclientmode
@@ -11,7 +11,7 @@
PROG=$(basename $0)
OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
SERVERCONF=$OPENGNSYS/etc/ogAdmServer.cfg
-PXEDIR=$OPENGNSYS/tftpboot/pxelinux.cfg
+MYCNF=/tmp/.my.cnf.$$
# Control básico de errores.
if [ $# -ne 1 ]; then
@@ -28,27 +28,21 @@ fi
source $SERVERCONF
# Sustituir caracteres ' por \' para evitar inyección SQL.
RESOURCE="${1//\'/\'}"
-# Comprobar si se recibe nombre de aula o de equipo.
-IDAULA=$(mysql -u "$USUARIO" -p"$PASSWORD" -D "$CATALOG" -N -e \
- "SELECT idaula FROM aulas WHERE nombreaula='$RESOURCE';")
-
-if [ -n "$IDAULA" ]; then
- # Aula encontrada
- PCNAME=$(mysql -u "$USUARIO" -p"$PASSWORD" -D "$CATALOG" -N -e \
- "SELECT nombreordenador FROM ordenadores WHERE idaula='$IDAULA';")
-else
- # Buscar ordenador
- PCNAME=$(mysql -u "$USUARIO" -p"$PASSWORD" -D "$CATALOG" -N -e \
- "SELECT nombreordenador FROM ordenadores WHERE nombreordenador='$RESOURCE';")
-fi
-if [ -z "$PCNAME" ]; then
- echo "$PROG: No existe ningún aula o equipo con el nombre \"$1\""
- exit 1
-fi
-
-for PC in $PCNAME; do
- PXE=$(mysql -u "$USUARIO" -p"$PASSWORD" -D "$CATALOG" -N -e \
- "SELECT arranque FROM ordenadores WHERE nombreordenador='$PC';")
- echo "Equipo $PC asociado a arranque tipo \"$PXE\""
-done
+# 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
+# Obtener nombre de ordenador individual o todos los de una aula e indicar su plantilla asociada.
+mysql --defaults-file=$MYCNF -D "$CATALOG" -s -N -e \
+ "SELECT nombreordenador, arranque FROM ordenadores
+ JOIN aulas USING (idaula)
+ WHERE aulas.nombreaula='$RESOURCE'
+ OR nombreordenador='$RESOURCE';" | \
+ awk '{ printf ("Equipo %s asociado a arranque tipo \"%s\"\n", $1, $2); }'