source: server/bin/setclientlive

lgromero-new-oglive
Last change on this file was c28eefa, checked in by Natalia Serrano <natalia.serrano@…>, 19 months ago

Log to syslog in a number of shell scripts

  • Property mode set to 100755
File size: 2.1 KB
Line 
1#!/bin/bash
2
3#/**
4#@file    setclientlive
5#@brief   Asignar un cliente de inicio ogLive a un ordenador o a un aula
6#@usage   setclientlive { DirOGLive | IndiceOGLive } Ambito
7#@param   DirOGLive      subdirectorio del cliente ogLive ("default" para definido por defecto)
8#@param   IndiceOGLive   nº de índice de cliente ogLive (según script "oglivecli")
9#@param   Ámbito         nombre de ordenador o nombre de aula
10#warning  No se admiten cambios temporales.
11#@version 1.1.0 - Versión inicial basada en script "setclientmode".
12#@author  Ramón M. Gómez - Univ. Sevilla, junio 2017
13#*/ ##
14
15
16# Variables y funciones globales.
17PROG="$(basename "$0")"
18OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
19PATH=$PATH:$OPENGNSYS/bin
20SERVERCONF=$OPENGNSYS/etc/ogAdmServer.cfg
21TFTPDIR=$OPENGNSYS/tftpboot
22
23source $OPENGNSYS/lib/ogfunctions.sh || exit 1
24
25# Control básico de errores.
26[ "$*" == "help" ] && help
27[ "$*" == "version" ] && version
28[ $# -eq 2 ] || raiseError usage
29[ "$USER" != "root" ] && raiseError access "Need to be root"
30source $SERVERCONF 2>/dev/null || raiseError access "Sin acceso a fichero de configuración"
31
32case "$1" in
33    [0-9]*)     DIR=$(oglivecli search $1 2>/dev/null) ;;
34    "default")  DIR="ogLive" ;;
35    *)          if oglivecli search "$1" &>/dev/null; then DIR="$1"; fi ;;
36esac
37[ "$DIR" ] || raiseError notfound "Cliente ogLive \"$1\", listar ejecutando \"oglivecli list\""
38[ -e "$TFTPDIR/$DIR" ] || raiseError notfound "Directorio de ogLive \"$DIR\""
39
40# Sustituir caracteres ' por \' para evitar inyección SQL.
41OGLIVEDIR="${DIR//\'/\\\'}"
42RESOURCE="${2//\'/\\\'}"
43# Actualizar ogLive asignado al aula.
44dbexec "UPDATE aulas SET oglivedir='$OGLIVEDIR' WHERE nombreaula='$RESOURCE';"
45# Actualizar ogLive para todos los clientes y reasignar plantilla PXE.
46listclientmode "$RESOURCE" | awk -F\" '{print $2,$4}' | \
47        while read -r PC BOOTMODE; do
48            echolog "Configurando \"$PC\" con cliente \"$OGLIVEDIR\""
49            dbexec "UPDATE ordenadores SET oglivedir='$OGLIVEDIR' WHERE nombreordenador = '$PC';"
50            setclientmode "$BOOTMODE" "$PC" PERM >/dev/null
51        done
Note: See TracBrowser for help on using the repository browser.