summaryrefslogtreecommitdiffstats
path: root/server/bin/listclientlive
blob: 5d06304dfefdc0a9c108ac73e2c76e6e21943c83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/bash
#/**
#@file    listclientlive
#@brief   Lista la distribución ogLive asociada a los clientes, ya sea un equipo o un aula.
#@usage   listclientlive Ambito
#@param   Ambito    nombre de ordenador o nombre de aula
#@version 1.1.0 - Versión inicial basada en el script "listclientmode"
#@author  Ramón M. Gómez, ETSII Universidad de Sevilla
#@date    2017-06-01
#**/


# Variables.
OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
SERVERCONF=$OPENGNSYS/etc/ogAdmServer.cfg
TFTPDIR=$OPENGNSYS/tftpboot

source $OPENGNSYS/lib/ogfunctions.sh || exit 1

# Control básico de errores.
[ "$*" == "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"

# Sustituir caracteres ' por \' para evitar inyección SQL.
RESOURCE="${1//\'/\\\'}"
# Obtener nombre de ordenador individual o todos los de una aula e indicar su plantilla asociada.
dbexec "SELECT CONCAT_WS('', 'Equipo \"', ord.nombreordenador, '\" asociado a cliente \"',
               ord.oglivedir, '\"  $([ -e $TFTPDIR/$OGLIVE ] || echo "(inexistente)")')
          FROM ordenadores AS ord
          JOIN aulas USING (idaula)
         WHERE aulas.nombreaula='$RESOURCE'
            OR ord.nombreordenador='$RESOURCE';"