diff options
author | ramon <ramongomez@us.es> | 2013-03-11 12:42:08 +0000 |
---|---|---|
committer | ramon <ramongomez@us.es> | 2013-03-11 12:42:08 +0000 |
commit | d1d41ad8fc13e08a0b670b154900728fa7246738 (patch) | |
tree | 421b7072e7656461d074b4d781bf2a8b98842198 /server | |
parent | 7fc01b97f7775675e95d8b0e7f184364f79e04b0 (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-x | server/bin/listclientmode | 42 |
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); }' |